você deve usar
left join
em vez de right join
As diferentes junções
inner join
:mantém apenas as linhas onde há dados em ambas as tabelas left join
:mantenha todas as linhas da tabela da esquerda e adicione o que for possível da direita right join
:mantenha todas as linhas da tabela da direita e adicione o que for possível da esquerda A mesa da esquerda é sempre a mesa que já temos e a mesa da direita é aquela com a qual estamos juntando.
Para o registro, há também uma
cross join
que une cada linha da tabela da esquerda com cada linha da tabela da direita, mas esta não é usada com muita frequência. Espero que agora tudo isso esteja mais claro para você :)
Consulta corrigida
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Esteja ciente de que isso pressupõe que a coluna
member_id
está na tabela de pássaros, caso contrário você pode manter a condição assim: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;