du skal bruge left join
i stedet for right join
De forskellige joinforbindelser
inner join
:behold kun de rækker, hvor der er data i begge tabeller
left join
:behold alle rækkerne i den venstre tabel og tilføj, hvad der er muligt fra den højre
right join
:behold alle rækkerne i den højre tabel og tilføj, hvad der er muligt fra den venstre
Det venstre bord er altid det bord, vi allerede har, og det højre bord er det, vi slutter os til.
For en god ordens skyld er der også en cross join
som forbinder hver række i den venstre tabel med hver række i den højre tabel, men denne bruges ikke så tit.
Jeg håber, at alt dette nu er klarere for dig :)
Korrigeret forespørgsel
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Vær opmærksom på, at dette forudsætter, at kolonnen member_id
står i fugletabellen, ellers kan du holde tilstanden sådan her :
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;