Mysql
 sql >> Base de données >  >> RDS >> Mysql

MySQL LEFT JOIN seulement 1 ligne en fonction de la valeur MAX()

Vous pouvez utiliser un simple JOIN vers table2 , il suffit de mettre le MAX(WorkDay) condition dans le JOIN condition en tant que sous-requête corrélée, où vous pouvez accéder à la table1 valeur de l'identifiant :

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)

Sortie :

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

Démo sur dbfiddle