vous devez utiliser left join
au lieu de right join
Les différentes jointures
inner join
:conserver uniquement les lignes contenant des données dans les deux tables
left join
:conserve toutes les lignes du tableau de gauche et ajoute ce qui est possible de celui de droite
right join
:gardez toutes les lignes du tableau de droite et ajoutez ce qui est possible de celui de gauche
La table de gauche est toujours la table que nous avons déjà et la table de droite est celle avec laquelle nous nous joignons.
Pour mémoire, il y a aussi une cross join
qui joint chaque ligne du tableau de gauche avec chaque ligne du tableau de droite, mais celui-ci n'est pas utilisé très souvent.
J'espère que tout cela est maintenant plus clair pour vous :)
Requête corrigée
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Sachez que cela suppose que la colonne member_id
est dans la table des oiseaux, sinon vous pouvez garder la condition comme ceci :
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;