sql >> Databáze >  >> RDS >> Mysql

tabulka připojení mysql

Zkuste tento dotaz, ale pokud by existovala nějaká data, mohl bych to zkontrolovat, i když jsem to zkontroloval pomocí fiktivních dat

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

UPRAVENÉ
Pak by to měla být ta nejjednodušší věc

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. DO a DONT pro indexy

  2. Nakonfigurujte režim spánku tak, aby jako primární klíč používal SYS_GUID() společnosti Oracle

  3. dotaz na mého správce prvního řádku nikdy nesmazat

  4. Konverze z Microsoft SQL Server na MySQL