Stačí provést zřetězení skupiny spolu se spojením mezi dvěma tabulkami:
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;
Všimněte si, že schéma tabulky zřejmě není zcela normalizováno. Obvykle je způsob, jak tento problém vyřešit, mít jednu tabulku pro informace o studentech, jednu tabulku pro události a pak spojení stůl, který spojuje studenty s událostmi. Vaši students
Zdá se, že tabulka slouží jako spojovací tabulka i jako tabulka obsahující jedinečné informace o studentech.
Takže lepší způsob, jak zde postupovat, by bylo refaktorovat students
obsahovat toto:
(1, 'student1'),
(2, 'student2'),
(3, 'student3');
A vytvořte novou spojovací tabulku student_event
obsahovat vztah mezi studenty a událostmi:
(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);