데이터가
seq | name
1 | 병장
2 | 상병
이런식으로 들어가있는데
리스트 긁어올 때
저 seq 를 1,2 이런식으로 긁어오거든요?
그럼 저 1,2에 대응하는 이름들을 어떻게 긁어와야 할까요?
병장,상병
이런식으로 긁어오고 싶습니다.
WITH code_t AS
(
SELECT 1 seq, '병장' name
UNION ALL SELECT 2, '상병'
UNION ALL SELECT 3, '일병'
UNION ALL SELECT 4, '이병'
UNION ALL SELECT 5, '쫄병'
)
, data_t AS
(
SELECT 1 id, '1,2' seqs
UNION ALL SELECT 2, '3,4'
UNION ALL SELECT 3, '3,1,2'
)
SELECT a.id
, a.seqs
, GROUP_CONCAT(b.name ORDER BY FIND_IN_SET(b.seq, a.seqs)) names
FROM data_t a
INNER JOIN code_t b
ON FIND_IN_SET(b.seq, a.seqs) > 0
GROUP BY a.id, a.seqs
;