Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL LEFT JOIN само 1 ред в зависимост от стойността MAX().

Можете да използвате просто JOIN към table2 , просто поставете MAX(WorkDay) условие в JOIN условие като корелирана подзаявка, където можете да получите достъп до table1 стойност на идентификатора:

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)

Изход:

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

Демо на 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. NodeJS отговори, че часовата зона на MySQL е различна, когато извличам директно от MySQL

  2. премахване на информация от таблицата на mysql, когато потребителят затвори своя браузър

  3. Достъпът е отказан за потребител 'root'@'localhost' (използвайки парола:Да) след нулиране на паролата LINUX

  4. Преструктуриране на лоша база данни с PHP цикли или MySQL

  5. Съхранената процедура на mysql е по-бавна 20 пъти от стандартната заявка