sql >> Database >  >> RDS >> Mysql

mysql join table

Probeer deze zoekopdracht, maar als er wat gegevens waren, zou ik het kunnen controleren, hoewel ik het heb gecontroleerd met dummy-gegevens

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

BEWERKT
Dan zou het zo simpel moeten zijn

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. Django ORM vergelijk tupels / lexicografische volgorde

  2. Opgeslagen procedure zorgt ervoor dat Commando's niet synchroon lopen bij de volgende query

  3. spool naar .csv-bestand met for loop

  4. Kolommen draaien, ongedaan maken en splitsen in Power BI Query Editor