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;