du måste använda left join
istället för right join
De olika kopplingarna
inner join
:behåll bara de rader där det finns data i båda tabellerna
left join
:behåll alla rader i den vänstra tabellen och lägg till vad som är möjligt från den högra
right join
:behåll alla rader i den högra tabellen och lägg till vad som är möjligt från den vänstra
Det vänstra bordet är alltid det bord vi redan har och det högra bordet är det vi går med i.
Det finns också en cross join
som förenar varje rad i den vänstra tabellen med varje rad i den högra tabellen, men den här används inte särskilt ofta.
Jag hoppas att allt detta nu är tydligare för dig :)
Rättad fråga
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Var medveten om att detta förutsätter att kolumnen member_id
finns i fågeltabellen, annars kan du behålla skicket så här :
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;