Mysql
 sql >> Database >  >> RDS >> Mysql

come posso ottenere un valore di campo in 3 tabelle di associazione con la data massima

Hai avuto un problema su come scegliere la data massima, poiché il mese veniva mostrato per primo. Un modo diverso consiste nel richiamare il valore max_date (da una sottoquery). Dopo puoi confrontare in base alle diverse parti della data . Codificare come segue:

select site_name, site_date, name 
 from
  (
    select  site_name, st.date as site_date, name, s.id, (select max(sto.date) from site_topology sto) as max_date
    from site s 
     inner join site_topology st on s.id =st.id_site
     inner join topology t on st.id_topology = t.id 
  )  as v
 where YEAR(site_date) = YEAR(max_date) AND MONTH(site_date) = MONTH(max_date) AND DAY(site_date) = DAY(max_date)
 group by name
 order by site_name

Test qui .