Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sử dụng LEFT JOIN để chỉ chọn một hàng đã tham gia

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
        )

Tạo chỉ mục trên table2 (c_id, isHeadOffice, o_id) để điều này hoạt động nhanh chóng.

ORDER BY mệnh đề trong truy vấn con có vẻ thừa nhưng nó là bắt buộc đối với MySQL để chọn chỉ mục phù hợp.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để cắt bỏ Trích dẫn hàng đầu và Dẫn đầu từ Hàng MySQL?

  2. Làm cách nào để sử dụng CẬP NHẬT KHÓA KÉP LÊN trong mô hình CodeIgniter của tôi?

  3. MySQL Select Query khi muốn các nhóm phần tử x được trả về theo lô

  4. Làm thế nào để khóa cơ sở dữ liệu mysql độc quyền?

  5. Tìm các mẫu số tương tự trong bảng