Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Hiển thị nhiều bản ghi liên tiếp

Chỉ cần thực hiện nối nhóm cùng với nối giữa hai bảng:

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;

Bản trình diễn

Lưu ý rằng lược đồ bảng của bạn dường như không được chuẩn hóa hoàn toàn. Thông thường, cách xử lý vấn đề này là có một bảng duy nhất cho thông tin sinh viên, một bảng duy nhất cho các sự kiện và sau đó là một điểm giao nhau bảng kết nối học sinh với các sự kiện. students của bạn bảng dường như đang phục vụ cả dưới dạng bảng nối và bảng chứa thông tin học sinh duy nhất.

Vì vậy, cách tốt hơn để tiếp tục ở đây là tái cấu trúc lại students để chứa cái này:

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

Và tạo một bảng nối mới student_event để chứa mối quan hệ giữa sinh viên và các sự kiện:

(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. MySQL:tìm ra các ID đơn hàng bị thiếu

  2. MySQL AUTO_INCREMENT không ROLLBACK

  3. Chọn tập hợp kết quả thành một biến, sau đó sử dụng biến đó trong bản cập nhật sau này trong cùng một quy trình được lưu trữ

  4. Làm cách nào để kết nối các trang html với cơ sở dữ liệu mysql?

  5. Làm thế nào để sửa chữa bảng bị hỏng