Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

GABUNG dan GROUP_CONCAT dengan tiga tabel

Ini tidak terlalu sulit.

  1. Gabung ketiga tabel menggunakan klausa JOIN.
  2. Gunakan Group_concat pada bidang yang Anda minati.
  3. Jangan lupa klausa GROUP BY pada bidang yang tidak Anda gabungkan atau aneh sesuatu akan terjadi


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

Perbarui KIRI GABUNG ketika pengguna tidak memiliki entri di User_Sports sesuai komentar



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana Anda menetapkan nilai default untuk kolom MySQL Datetime?

  2. Peringatan:mysqli_query() mengharapkan parameter 1 diberikan boolean mysqli

  3. Bagaimana cara membuat database MySQL dari file dump di skrip expect/TCL?

  4. MySQL:Cari string yang sama di beberapa kolom

  5. GANTI karakter baris baru di MYSql tidak berfungsi