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

MySQL bên trái kết nối với mệnh đề where - trả về các hàng chưa khớp

Đúng. where mệnh đề đang chuyển phép nối bên ngoài bên trái thành một phép nối bên trong.

Tại sao? Giá trị của pe.pqidNULL (cũng như pe.uid ) khi không có kết quả phù hợp. Vì vậy, so sánh trong where mệnh đề không thành công (hầu hết tất cả các so sánh với NULL trả về NULL được coi là sai).

Giải pháp là chuyển so sánh sang on mệnh đề:

SELECT pq.id, pq.data, pe.data
FROM pq LEFT OUTER JOIN
     pe
     ON pq.id = pe.pqid and
        pe.uid='12345'
ORDER BY pq.id LIMIT 2



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn SQL trả về false trong PHP

  2. Tìm kiếm địa không gian MySQL sử dụng công thức hasrsine trả về null trên cùng một điểm

  3. Truy vấn phân cấp trong MySQL. (kết nối bằng tương đương cho MySQL)

  4. Không thể chuyển tham số bằng tham chiếu trong MySQLi

  5. Tôi không thể chạy cập nhật gói do đá quý mysql2