बस दो तालिकाओं के बीच में शामिल होने के साथ एक समूह संयोजन करें:
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);