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

JOIN i GROUP_CONCAT z trzema tabelami

Nie jest to szczególnie trudne.

  1. Połącz trzy tabele za pomocą klauzuli JOIN.
  2. Użyj Group_concat w polach, które Cię interesują.
  3. Nie zapomnij o klauzuli GROUP BY w polach, których nie łączysz lub dziwne coś się wydarzy


SELECT u.id, 
       u.Name, 
       Group_concat(us.id_sport order by pref) sport_ids, 
       Group_concat(s.name order by pref)      sport_names 
FROM   users u 
       LEFT JOIN User_Sports us 
               ON u.id = us.id_user 
       LEFT  JOIN sports s 
               ON US.id_sport = s.id 
GROUP  BY u.id, 
          u.Name 

DEMO

Aktualizuj LEWY DOŁĄCZ, gdy użytkownik nie ma wpisów w User_Sports zgodnie z komentarzami



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL INSERT ... ON DUPLICATE KEY UPDATE w Javie:jak odróżnić stany wstawione/zaktualizowane/bez zmian

  2. Jak zsynchronizować bazę danych deweloperskich i produkcyjnych

  3. Sortuj według kolejności wartości w instrukcji select w klauzuli w mysql

  4. Zresetuj hasło roota MySQL

  5. policz różnicę dat w godzinach za pomocą php i mysql