sql >> Database >  >> RDS >> Mysql

hoe kan ik een veldwaarde krijgen in 3 associatietabellen met het maximum van datum

Je had een probleem met het kiezen van de maximale datum, aangezien de maand als eerste werd weergegeven. Een andere manier is om de max_date-waarde op te roepen (van een subquery). Daarna kun je vergelijken op de verschillende delen van de datum . Codeer als volgt:

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

Hier wordt getest .



  1. MySQL - GROUP_CONCAT met joins

  2. Hoe te repareren "Conversie mislukt bij het converteren van de waarde naar gegevenstype" in SQL Server

  3. MySQL:IF / THEN-instructies in opgeslagen procedures

  4. vereist elke aanroep naar mysql_real_escape_string nog een trip naar de database?