anda harus menggunakan left join
alih-alih right join
Penggabungan yang berbeda
inner join
:simpan hanya baris yang berisi data di kedua tabel
left join
:simpan semua baris tabel kiri dan tambahkan apa yang mungkin dari tabel kanan
right join
:simpan semua baris tabel kanan dan tambahkan apa yang mungkin dari tabel kiri
Tabel kiri selalu merupakan tabel yang sudah kita miliki dan tabel kanan adalah tabel tempat kita bergabung.
Sebagai catatan, ada juga cross join
yang menggabungkan setiap baris di tabel kiri dengan setiap baris di tabel kanan, tetapi baris ini tidak terlalu sering digunakan.
Saya harap semua ini sekarang lebih jelas untuk Anda :)
Kueri yang diperbaiki
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Ketahuilah bahwa ini mengasumsikan bahwa kolom member_id
ada di tabel burung, jika tidak, Anda dapat mempertahankan kondisinya seperti ini :
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;