je moet left join
gebruiken in plaats van right join
De verschillende joins
inner join
:bewaar alleen de rijen met gegevens in beide tabellen
left join
:bewaar alle rijen van de linkertabel en voeg toe wat mogelijk is vanaf de rechter
right join
:bewaar alle rijen van de rechtertabel en voeg toe wat mogelijk is vanaf de linker
De linkertafel is altijd de tafel die we al hebben en de rechtertafel is degene waarmee we meedoen.
Voor de goede orde, er is ook een cross join
die elke rij in de linkertabel verbindt met elke rij in de rechtertabel, maar deze wordt niet vaak gebruikt.
Ik hoop dat dit nu allemaal duidelijker voor je is :)
Gecorrigeerde zoekopdracht
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Houd er rekening mee dat dit ervan uitgaat dat de kolom member_id
staat in de vogeltabel, anders kun je de toestand als volgt houden:
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;