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

Gabungkan satu baris ke beberapa baris di tabel lain

Gunakan:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
LEFT JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Anda menginginkan fungsi MySQL GROUP_CONCAT ( dokumentasi ) untuk mengembalikan daftar nilai PROPERTIES.property yang dipisahkan koma.

Saya menggunakan LEFT JOIN daripada JOIN untuk memasukkan catatan ORANG yang tidak memiliki nilai di tabel PROPERTIES - jika Anda hanya ingin daftar orang dengan nilai di tabel PROPERTIES, gunakan:

   SELECT x.name,
          GROUP_CONCAT(y.property SEPARATOR ', ')
     FROM PEOPLE x
     JOIN PROPERTIES y ON y.name = x.name
    WHERE x.age > 26
 GROUP BY x.name

Saya menyadari ini adalah sebuah contoh, tetapi menggunakan nama adalah pilihan yang buruk untuk integritas referensial ketika Anda mempertimbangkan berapa banyak "John Smith" yang ada. Menetapkan user_id, menjadi nilai unik per pengguna, akan menjadi pilihan yang lebih baik.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Instal dan Gunakan Percona Toolkit di Centos 7

  2. Bagaimana cara membuat model Django dengan ForeignKeys yang tidak menghapus secara kaskade ke anak-anaknya?

  3. Hosting MySQL di Azure, Layanan Cloud Database Terkelola Sepenuhnya Diluncurkan di ScaleGrid

  4. Bagaimana saya bisa mendapatkan jumlah pelanggan per hari dengan pelanggan unik dan berulang untuk tanggal tertentu?

  5. Hitung berapa kali nilai muncul di kolom tertentu di MySQL