Mysql
 sql >> база данни >  >> RDS >> Mysql

JOIN и GROUP_CONCAT с три таблици

Не е особено трудно.

  1. Свържете трите таблици с помощта на клаузата JOIN.
  2. Използвайте Group_concat за полетата, които ви интересуват.
  3. Не забравяйте клаузата GROUP BY в полетата, които не обединявате или странно нещата ще се случат


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 

ДЕМО

Актуализиране LEFT JOIN за когато потребителят няма записи в User_Sports според коментари



  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 – това, което трябва да знаете

  2. Запазване на сръбски латински знаци в базата данни

  3. Как да използвам подготвен израз за заявка за избор в Java?

  4. Codeigniter/PHP проверява дали може да се свърже с базата данни

  5. PHP MySQL - За всеки 6 реда вмъкнете div?