трябва да използвате left join
вместо right join
Различните съединения
inner join
:запазете само редовете, където има данни и в двете таблица
left join
:запазете всички редове на лявата таблица и добавете каквото е възможно от дясната
right join
:запазете всички редове на дясната таблица и добавете възможното от лявата
Лявата таблица винаги е таблицата, която вече имаме, а дясната е тази, с която се свързваме.
За протокола има и cross join
който съединява всеки ред в лявата таблица с всеки ред в дясната таблица, но този не се използва много често.
Надявам се всичко това да ви е по-ясно :)
Коригирана заявка
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Имайте предвид, че това предполага, че колоната member_id
е в таблицата за птици, в противен случай можете да запазите условието по следния начин:
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;