Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Executando uma junção à esquerda em uma tabela muitos para muitos com condições


Se eu entender os conceitos por trás do seu esquema, acho que stage_id deve ser uma coluna em team_pool em vez de pool . O estágio não é um atributo do pool, é um fator no mapeamento de times para pools, certo?

Independentemente disso, é assim que eu escreveria sua consulta no Oracle. Não tenho certeza se essa sintaxe exata é correta para o MySQL. Presumivelmente, você gostaria de parametrizar o valor literal para 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