sql >> Database teknologi >  >> RDS >> Mysql

JOIN og GROUP_CONCAT med tre tabeller

Det er ikke specielt svært.

  1. Forbind de tre tabeller ved hjælp af JOIN-sætningen.
  2. Brug Group_concat på de felter, du er interesseret i.
  3. Glem ikke GROUP BY-sætningen på de felter, du ikke sammenkæder eller underlige ting vil ske


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

Opdater LEFT JOIN, når brugeren ikke har poster i User_Sports i henhold til kommentarer



  1. SQL GROUP BY- 3 nemme tips til at gruppere resultater som en professionel

  2. Kan jeg SSH til MySQL med GUI-værktøjerne?

  3. MySQL - Operand skal indeholde 1 kolonne(r)

  4. Hvad er den bedste måde at gemme afkrydsningsfeltværdier i MySQL-databasen?