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

Използване на LEFT JOIN за избиране само на един съединен ред

SELECT  *
FROM    table1 t1
LEFT JOIN
        table2
ON      o.id = 
        (
        SELECT  o_id
        FROM    table2 t2
        WHERE   t2.c_id = t1.c_id
        ORDER BY
                t2.c_id DESC, t2.isHeadOffice DESC, t2.o_id DESC
        LIMIT 1
        )

Създайте индекс на table2 (c_id, isHeadOffice, o_id) за да работи бързо.

ORDER BY клаузата в подзаявката може да изглежда излишна, но е необходима за MySQL за да изберете правилния индекс.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL команда Обяснете игнориране на LIMIT?

  2. Експортиране на Google App Engine Datastore в MySQL?

  3. Качване на множество изображения с Codeigniter, запазващ само един път на файла към MySQL база данни

  4. Как да получите COUNT заявка в django

  5. Прочетете тип данни Mediumblob от MYSQL в C#