आप FIND_IN_SET()
use का उपयोग कर सकते हैं और GROUP_CONCAT()
इस पर,
SELECT b.Group_ID, GROUP_CONCAT(a.name) name
FROM Table2 b
INNER JOIN Table1 a
ON FIND_IN_SET(a.ID, b.Group_ID) > 0
GROUP BY b.Group_ID
आउटपुट
╔══════════╦═════════════════╗
║ GROUP_ID ║ NAME ║
╠══════════╬═════════════════╣
║ 1 ║ Person1 ║
║ 2,3 ║ Person2,Person3 ║
╚══════════╩═════════════════╝
एक विचार के रूप में, यह क्वेरी अपेक्षित रूप से कुशलता से प्रदर्शन नहीं कर सकती है। कृपया अल्पविराम से अलग किए गए मानों को न सहेज कर अपनी तालिका को ठीक से सामान्य करें।
अपडेट करें
GROUP_ID
काफी भ्रमित करने वाला है। क्या यह PersonIDList
नहीं है ? वैसे भी, यहाँ मेरा सुझाया गया स्कीमा डिज़ाइन है:
व्यक्ति तालिका
- व्यक्ति आईडी (पीके)
- व्यक्ति का नाम
- अन्य कॉलम..
ग्रुप टेबल
- ग्रुपआईडी (पीके)
- समूह का नाम
- अन्य कॉलम..
PERSON_GROUP तालिका
- PersonID (FK) (उसी समय PK कॉलम GroupID के साथ)
- ग्रुपआईडी (एफके)