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

Bao gồm các giá trị KHÔNG ĐƯỢC TÌM HIỂU trong kết quả truy vấn MySQL

Một left join là đúng, nhưng bạn cần types là người đầu tiên:

SELECT DISTINCT types.type, owners.name, owners.city
FROM tbl_pet_types types LEFT JOIN
     tbl_pet_owners owners
     ON owners.pet = types.pet
WHERE types.type IN ('mammal', 'fish', 'amphibian', 'seacreature');

Bởi vì WHERE mệnh đề chỉ đề cập đến tbl_pet_types , nó không thay đổi.

Cách left join hoạt động rất đơn giản:Nó giữ tất cả các hàng ở đầu tiên bàn. Các cột không khớp trong cột thứ hai trở thành NULL .

CHỈNH SỬA:

Nếu bạn có danh sách các loại không có trong tbl_pet_types , thì bạn cần một left join với tất cả các giá trị trong bảng dẫn xuất:

SELECT DISTINCT tt.type, po.name, po.city
FROM (SELECT 'mammal' as type UNION ALL
      SELECT 'fish' as type UNION ALL
      SELECT 'amphibian' as type UNION ALL
      SELECT 'seacreature' as type 
     ) tt left join
     tbl_pet_types pt
     ON pt.type = tt.type LEFT JOIN
     tbl_pet_owners po
     ON po.pet = pt.pet;


  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 thế nào để chuyển đổi tệp excel thành cơ sở dữ liệu mysql?

  2. Các lựa chọn thay thế MySQL Workbench hàng đầu

  3. Python, Brew và MySQLdb

  4. Gọi các hàm MySQL trong Lithium

  5. Tham chiếu đến các bảng của truy vấn bên ngoài trong một truy vấn con