이런 테이블을 가지고
skillTxt를 기준으로 찾아서 이런 결과물을 뽑고싶었음
해결을 하긴 했는데 맘에 들지 않아서 좀 더 좋은 방법이 없을까 고민하다가
지피티에게 장문의 편지를 보냈더니 해답을 주었따
대충 이러하당
SELECT temp.SKILL_CDS AS skillCds
, GROUP_CONCAT(skill.SKILL_TXT ORDER BY FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS)) AS skillTxt
FROM TEMP AS temp
LEFT JOIN SKILL AS skill ON FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS)
FIND_IN_SET () 함수는 쉼표로 구분된 문자열(temp.SKILL_CDS)을 가지고 제시된 컬럼(skill.SKILL_CD) 내에 일치하는 값이 있는지 확인하여 해당 값의 위치를 반환하는데, 이 반환값이 0보다 큰 truthy값이기 때문에 해당하는 값들만 join된다.
이 값들을 GROUP_CONCAT함수(쉼표로 구분된 하나의 String으로 합쳐줌)를 사용하여 합쳐주면 원하는 값을 얻을 수 있다.
끗