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

Tampilkan beberapa catatan dalam satu baris

Lakukan saja penggabungan grup bersama dengan gabungan antara dua tabel:

SELECT
    s.student_name AS Students,
    GROUP_CONCAT(e.event_name) AS Events
FROM students s
LEFT JOIN events e
    ON s.event_id = e.event_id
GROUP BY
    s.student_name;

Demo

Perhatikan bahwa skema tabel Anda tampaknya tidak sepenuhnya dinormalisasi. Biasanya, cara untuk menangani masalah ini adalah dengan memiliki satu tabel untuk informasi siswa, satu tabel untuk acara, dan kemudian persimpangan tabel yang menghubungkan siswa dengan peristiwa. students . Anda tabel tampaknya berfungsi sebagai tabel persimpangan dan sebagai tabel yang berisi informasi siswa yang unik.

Jadi cara yang lebih baik untuk melanjutkan di sini adalah dengan refactor students berisi ini:

(1, 'student1'),
(2, 'student2'),
(3, 'student3');

Dan buat tabel persimpangan baru student_event untuk memuat hubungan antara siswa dan peristiwa:

(id, student_id, event_id)
(1, 1, 1),
(2, 1, 2),
(3, 1, 3),
(4, 1, 4),
(5, 2, 3),
(6, 3, 2),
(7, 3, 4);



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan Visio untuk menghasilkan MySQL DDL

  2. SQLAlchemy dan UnicodeDecodeError

  3. Apa pengganti uniqueidentifier di Mysql?

  4. Tidak dapat mengekspor database saya dari meja kerja mysql

  5. MySQL menyimpan Float