sql >> Databasteknik >  >> RDS >> Mysql

MySQL LEFT JOIN endast 1 rad beroende på MAX()-värdet

Du kan använda en enkel JOIN till table2 , skriv bara in MAX(WorkDay) skick till JOIN condition som en korrelerad underfråga, där du kan komma åt table1 id-värde:

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)

Utdata:

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

Demo på dbfiddle



  1. Är MariaDB JDBC-drivrutinen påverkad av Log4j-sårbarheten?

  2. MySQL-Prestanda vid beställning på beräknad kolumn

  3. Hur får man tillgång till Oracle-databasen över nätverket?

  4. MySQL PHP - SELECT WHERE id =array()?