musíte použít left join
místo right join
Různá spojení
inner join
:ponechat pouze řádky, kde jsou data v obou tabulkách
left join
:ponechat všechny řádky levé tabulky a přidat, co je možné z pravého
right join
:ponechat všechny řádky pravé tabulky a přidat to, co je možné z levého
Levý stůl je vždy stůl, který již máme, a pravý stůl je ten, ke kterému se připojujeme.
Pro pořádek je zde také cross join
který spojuje každý řádek v levé tabulce s každým řádkem v pravé tabulce, ale tento se příliš často nepoužívá.
Doufám, že je vám to vše nyní jasnější :)
Opravený dotaz
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
Uvědomte si, že to předpokládá, že sloupec member_id
je v ptačí tabulce, jinak stav můžete zachovat takto :
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;