sql >> Databasteknik >  >> RDS >> Mysql

Att utföra en vänsterkoppling över ett många-till-många-bord med villkor

Om jag förstår begreppen bakom ditt schema, så skulle jag tänka stage_id bör vara en kolumn i team_pool istället för pool . Scenen är inte ett attribut för poolen, det är en faktor i kartläggningen av lag till pooler, eller hur?

Oavsett så här skulle jag skriva din fråga i Oracle. Jag är inte säker på om denna exakta syntax är rätt för MySQL. Förmodligen skulle du vilja parametrisera det bokstavliga värdet för 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


  1. MySQL - Hitta rader som matchar alla rader från den sammanfogade tabellen

  2. Hur förhindrar jag sql-injektion med php och mysql

  3. Ändra användardefinierad typ i SQL Server

  4. mysql-fråga för att välja en specifik rad och en annan slumpmässig rad