sql >> Database >  >> RDS >> Mysql

MySQL LEFT JOIN slechts 1 rij afhankelijk van MAX() waarde

U kunt een eenvoudige JOIN . gebruiken naar table2 , zet gewoon de MAX(WorkDay) voorwaarde in de JOIN voorwaarde als een gecorreleerde subquery, waar u toegang kunt krijgen tot de table1 ID-waarde:

SELECT *
FROM table1 t1
JOIN table2 t2 ON t2.id = t1.id AND
                  t2.WorkDay = (SELECT MAX(WorkDay) 
                                FROM table2 
                                WHERE table2.id = t1.id)

Uitgang:

ID  Name    ID  WorkDay     MissionCode
1   Brain   1   2019-02-01  2470
2   Amy     2   2019-02-01  7210

Demo op dbfiddle



  1. Langzame MySQL-query op update-instructie

  2. Welk gegevenstype voor breedte- en lengtegraad?

  3. mySQL CAST en ASC / DESC

  4. MySQL MOD() is kapot:is dit het beste alternatief?