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

mysql結合テーブル

    このクエリを試してみてください。ただし、データがあれば、ダミーデータで確認しましたが確認できます

    select
      t.token_id,
      IFNULL(g.game,'') as Game,
      IFNULL(p.name,'') as Prize,
      case when g.game != '' then 'Assigned' when p.name != '' then 'Assigned' else 'Not assigned yet' end as `Status`
    from token as t
      left join (select *
             from games
             where token_id not in(select
                         token_id
                       from prize)) as g
        on g.token_id = t.token_id
      left join (select *
             from prize
             where token_id not in(select
                         token_id
                       from games)) as p
        on p.token_id = t.token_id
    

    編集済み
    それなら、それが最も簡単なことです

    select *
    from `user`
      left join token
        on user.user_id = token.user_id
      left join games
        on games.token_id = token.token_id
      left join prize
        on prize.token_id = token.token_id
    where user.user_id = 1
    



    1. MySQLで末尾の空白を削除する方法

    2. HerokuとRails:PostgresでのGemロードエラー、ただしGEMFILEで指定

    3. SQLサーバーのVARCHARとNVARCHARの違い-SQLServer/T-SQLチュートリアルパート32

    4. 入力したフォームデータがmysqldbに保存されていませんか?