Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wykonywanie lewego sprzężenia w tabeli wiele-do-wielu z warunkami

Jeśli rozumiem koncepcje twojego schematu, pomyślałbym, że stage_id powinna być kolumną w team_pool zamiast pool . Etap nie jest atrybutem puli, jest czynnikiem przy mapowaniu drużyn do puli, prawda?

Niezależnie od tego, tak bym napisał Twoje zapytanie w Oracle. Nie jestem pewien, czy ta dokładna składnia jest odpowiednia dla MySQL. Przypuszczalnie chciałbyś sparametryzować wartość dosłowną dla 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak pobrać wiele wierszy z bazy danych w PHP

  2. SZEROKIE tabele mysql

  3. Kiedy używać TEXT w mysql zamiast VARCHAR

  4. Korzystanie z wielu baz danych w CodeIgniter

  5. MYSQL:Jak skopiować cały wiersz z jednej tabeli do drugiej w mysql, gdy druga tabela ma jedną dodatkową kolumnę?