Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक पंक्ति में एकाधिक रिकॉर्ड दिखाएं

बस दो तालिकाओं के बीच में शामिल होने के साथ एक समूह संयोजन करें:

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);



  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, NULL या खाली स्ट्रिंग डालने के लिए बेहतर है?

  2. MySQL:DATE_ADD

  3. MySQL Tinybit(1) एक दृश्य के माध्यम से स्तंभ

  4. तालिका में डुप्लिकेट प्रविष्टियाँ हटाएं

  5. विकास के दौरान त्वरित कॉलम/इंडेक्स निर्माण के लिए MySQL ट्यूनिंग