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

Chọn tất cả các mục trong một bảng và kết hợp với một bảng khác, cho phép rỗng

bạn phải sử dụng left join thay vì right join

Các liên kết khác nhau

inner join :chỉ giữ lại các hàng có dữ liệu trong cả hai bảng

left join :giữ tất cả các hàng của bảng bên trái và thêm những gì có thể từ hàng bên phải vào

right join :giữ tất cả các hàng của bảng bên phải và thêm những gì có thể từ hàng bên trái vào

Bảng bên trái luôn là bảng chúng tôi đã có và bảng bên phải là bảng chúng tôi đang tham gia cùng.

Đối với bản ghi, cũng có một cross join nối mỗi hàng trong bảng bên trái với mỗi hàng trong bảng bên phải, nhưng hàng này không được sử dụng thường xuyên.

Tôi hy vọng tất cả điều này bây giờ rõ ràng hơn cho bạn :)

Truy vấn đã sửa

select  bird_name, member_id 
from birds  
left join bird_likes on birds.bird_id = bird_likes.bird_id 
where member_id = 2;

Lưu ý rằng điều này giả định rằng cột member_id ở trong bàn chim, nếu không bạn có thể giữ nguyên tình trạng như sau:

select  bird_name, member_id 
from birds  
left join bird_likes on 
    birds.bird_id = bird_likes.bird_id and
    bird_likes.member_id = 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. làm thế nào để phân vùng bảng theo cột ngày giờ?

  2. Làm cách nào để bạn có được id hàng một cách an toàn và hiệu quả sau khi chèn với mysql bằng MySQLdb trong python?

  3. Varchar tự động tăng dần trong MySQL

  4. hình phạt hiệu suất của chuỗi làm khóa chính?

  5. Làm cách nào để chạy nhiều truy vấn chèn trong SQL bằng PHP trong một lần?