Просто направете групова конкатенация заедно с обединяване между двете таблици:
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;
Имайте предвид, че схемата на вашата таблица изглежда не е напълно нормализирана. Обикновено начинът за справяне с този проблем е да имате една таблица за информация за ученици, една таблица за събития и след това възел таблица, която свързва учениците със събития. Вашите students
таблицата изглежда служи както като съединителна таблица, така и като таблица, съдържаща уникална информация за ученик.
Така че по-добрият начин да продължите тук би бил да преработите students
да съдържа това:
(1, 'student1'),
(2, 'student2'),
(3, 'student3');
И създайте нова съединителна таблица student_event
да съдържа връзката между ученици и събития:
(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);