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