Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL LEFT JOIN tylko 1 wiersz w zależności od wartości MAX()

Możesz użyć prostego JOIN do table2 , po prostu wpisz MAX(WorkDay) warunek w JOIN warunek jako skorelowane podzapytanie, w którym można uzyskać dostęp do table1 wartość identyfikatora:

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)

Wyjście:

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

Demo na dbfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fluent NHibernate DuplicateMappingException z automappingiem

  2. DataTable z Ajax nie działa dobrze po użyciu serverSide:true

  3. Pobierz wszystkie działania ostatnich trzech użytkowników

  4. Jak skonfigurować strefę czasową xampp mysql i apache?

  5. Używanie dict Pythona do instrukcji SQL INSERT