left join
を使用する必要があります right join
の代わりに
さまざまな結合
inner join
:両方のテーブルにデータがある行のみを保持する
left join
:左側のテーブルのすべての行を保持し、右側のテーブルから可能なものを追加します
right join
:右側のテーブルのすべての行を保持し、左側のテーブルから可能なものを追加します
左側のテーブルは常に既存のテーブルであり、右側のテーブルは結合しているテーブルです。
記録のために、cross join
もあります これは、左側のテーブルの各行と右側のテーブルの各行を結合しますが、これはあまり使用されません。
これがすべてあなたにとってより明確になったことを願っています:)
修正されたクエリ
select bird_name, member_id
from birds
left join bird_likes on birds.bird_id = bird_likes.bird_id
where member_id = 2;
これは、列member_id
を想定していることに注意してください。 は鳥のテーブルにあります。それ以外の場合は、次のような状態を維持できます:
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;