Bare lav en gruppesammenkædning sammen med en joinforbindelse mellem de to tabeller:
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;
Bemærk, at dit tabelskema ikke ser ud til at være helt normaliseret. Typisk er måden at håndtere dette problem på at have en enkelt tabel til elevinformation, en enkelt tabel til begivenheder og derefter et kryds tabel, som forbinder eleverne til begivenheder. Dine students
tabel ser ud til at fungere både som en samlingstabel og som en tabel, der indeholder unikke elevoplysninger.
Så en bedre måde at komme videre på her ville være at refaktorere students
at indeholde dette:
(1, 'student1'),
(2, 'student2'),
(3, 'student3');
Og opret en ny krydstabel student_event
at indeholde forholdet mellem elever og arrangementer:
(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);