sql >> Database teknologi >  >> RDS >> Mysql

mysql join-tabel

Prøv denne forespørgsel, men hvis der var nogle data, ville jeg være i stand til at kontrollere, selvom jeg har tjekket med dummy-data

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

REDIGERET
Så burde det være den mest enkle ting at gøre

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-tabel med statiske værdier og dynamiske værdier

  2. Sqoop import job fejl org.kitesdk.data.ValidationException for Oracle

  3. Kræver MySQL InnoDB altid et indeks for hver fremmednøglebegrænsning?

  4. MySQL exit-handler ignoreret