sql >> Databáze >  >> RDS >> Mysql

JOIN a GROUP_CONCAT se třemi stoly

Není to nijak zvlášť obtížné.

  1. Spojte tři tabulky pomocí klauzule JOIN.
  2. V polích, která vás zajímají, použijte Group_concat.
  3. Nezapomeňte na klauzuli GROUP BY u polí, která nezřetězujete nebo divná věci se budou dít


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

Aktualizovat PŘIPOJTE SE VLEVO, pokud uživatel nemá položky v User_Sports podle komentářů



  1. CASE .. WHEN výraz v Oracle SQL

  2. Použití serveru SQL jako úložiště obrázků

  3. Problém při porovnávání výsledku to_char(myDate, 'DAY') s řetězcem

  4. Aktualizujte sloupce, pokud vstupní hodnoty nejsou null, jinak ignorujte a ponechte stávající hodnoty sloupce v databázi