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

Left Outer Join không trả về tất cả các bản ghi từ bảng chính

Mệnh đề where của bạn đang chuyển đổi phép nối bên ngoài trở lại thành phép nối bên trong.

Các hàng không phù hợp được lưu giữ bởi outer join tất cả sẽ có NULL các giá trị cho documentation.status vì vậy documentation.status != 3 của bạn điều kiện sẽ lọc lại những thứ này (Kết quả của biểu thức NULL !=3 unknown không phải true ).

Để tránh vấn đề này, hãy sử dụng

select documentation_reference.ref_docnumber,
       documentation.filename
from   documentation_reference
       left outer join documentation
         on ref_docnumber = documentation.docnumber
            and documentation.status != 3
where  documentation_reference.docnumber = 'TP-036'  

Lưu ý rằng documentation.status != 3 vị từ được chuyển vào JOIN điều kiện.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Triển khai ứng dụng mysql qt

  2. Lược đồ cơ sở dữ liệu hệ thống nhắn tin

  3. Làm thế nào để gọi Thủ tục lưu trữ với Eloquent (Laravel)?

  4. Tại sao các hàm mysql_ của PHP không được dùng nữa?

  5. Cảnh báo:mysqli_connect ():(HY000 / 1049):Cơ sở dữ liệu không xác định chỉ trong thiết bị đầu cuối mac