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

MySQL LEFT JOIN kun 1 række afhængig af MAX() værdi

Du kan bruge en simpel JOIN til table2 , indsæt bare MAX(WorkDay) betingelse i JOIN betingelse som en korreleret underforespørgsel, hvor du kan få adgang til table1 id-værdi:

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)

Output:

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

Demo på dbfiddle



  1. Hent mysql-tabelkommentar ved hjælp af DatabaseMetaData

  2. Sådan formateres et tal som valuta i Oracle

  3. Lav en WHERE IN på flere kolonner i Postgresql

  4. Open source ER-diagramværktøj til mysql