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

Esecuzione di un join sinistro su una tabella molti-a-molti con condizioni

Se capisco i concetti alla base del tuo schema, allora penserei a stage_id dovrebbe essere una colonna in team_pool anziché pool . La fase non è un attributo del girone, è un fattore nella mappatura delle squadre ai gironi, giusto?

Indipendentemente da ciò, è così che scriverei la tua query in Oracle. Non sono sicuro che questa sintassi esatta sia giusta per MySQL. Presumibilmente vorresti parametrizzare il valore letterale per stage_id .

SELECT t.name, p.name
  FROM (SELECT team.name, pool_id
          FROM team LEFT JOIN team_pool
            ON team_pool.team_id = team.team_id ) t
       LEFT JOIN (SELECT pool_id, name FROM pool WHERE stage_id = 2) p
            ON p.pool_id = t.pool_id