sql >> データベース >  >> RDS >> Mysql

1つのテーブル内のすべてのアイテムを選択し、別のテーブルと結合して、nullを許可する

    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;
    


    1. MySQLストアドプロシージャで一時テーブルを作成する

    2. Fedora33にPostgreSQL12をインストールする方法

    3. パラメータ化されたクエリの例

    4. PostgreSQLで配列を更新する方法