sql >> Database >  >> RDS >> Mysql

JOIN en GROUP_CONCAT met drie tabellen

Het is niet bijzonder moeilijk.

  1. Voeg de drie tabellen samen met behulp van de JOIN-component.
  2. Gebruik Group_concat op de velden waarin u geïnteresseerd bent.
  3. Vergeet de GROUP BY-clausule niet op de velden die u niet samenvoegt of raar dingen zullen gebeuren


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

Bijwerken LEFT JOIN voor wanneer de gebruiker geen inzendingen heeft in User_Sports volgens opmerkingen



  1. Oracle Trigger WHEN-clausule Voorbeeld

  2. Hoe MySQL JSON-array naar door komma's gescheiden tekenreeksen te converteren

  3. Hulp bij het bewerken van JSON om een ​​array te maken in plaats van een 'woordenboek'

  4. Verwarring met Oracle CONNECT BY