sql >> Databasteknik >  >> RDS >> Mysql

mysql gå med i tabellen

Testa den här frågan men om det fanns några data skulle jag kunna kontrollera även om jag har kontrollerat med dummydata

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

REDIGERAD
Då borde det vara det enklaste att göra

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. Anropa en lagrad procedur med parameter i c#

  2. Prisma relationer

  3. Hur man formaterar datum och tid i SQL Server

  4. SQL UPPDATERA alla värden i ett fält med bifogad sträng CONCAT fungerar inte