Możesz użyć FIND_IN_SET()
i GROUP_CONCAT()
w tej sprawie,
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
WYJŚCIE
╔══════════╦═════════════════╗
║ GROUP_ID ║ NAME ║
╠══════════╬═════════════════╣
║ 1 ║ Person1 ║
║ 2,3 ║ Person2,Person3 ║
╚══════════╩═════════════════╝
Na marginesie, to zapytanie może nie działać zgodnie z oczekiwaniami. Proszę znormalizować tabelę prawidłowo, nie zapisując wartości oddzielonych przecinkiem.
AKTUALIZUJ
GROUP_ID
jest dość mylące. Czy to nie jest PersonIDList
? ? W każdym razie, oto mój sugerowany projekt schematu:
Tabela PERSON
- Identyfikator osoby (PK)
- Nazwisko osoby
- inne kolumny...
Tabela GRUP
- ID grupy (PK)
- Nazwa grupy
- inne kolumny...
Tabela PERSON_GROUP
- PersonID (FK) (w tym samym czasie PK z kolumną GroupID)
- ID grupy (FK)