Mysql
 sql >> Base de données >  >> RDS >> Mysql

Effectuer une jointure gauche sur une table plusieurs-à-plusieurs avec des conditions

Si je comprends les concepts derrière votre schéma, alors je penserais stage_id devrait être une colonne dans team_pool plutôt que pool . L'étape n'est pas un attribut du pool, c'est un facteur de mappage des équipes aux pools, n'est-ce pas ?

Quoi qu'il en soit, c'est ainsi que j'écrirais votre requête dans Oracle. Je ne sais pas si cette syntaxe exacte convient à MySQL. Vraisemblablement, vous voudriez paramétrer la valeur littérale pour 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