development♥

mysql groupconcat 함수 서브쿼리 데이터값 합치는 방법

리니❤ 2023. 3. 30. 09:38
반응형

각각의 값을 group_concat이라는 함수로 묶어서 값을 하나로 가져오는방법

 

예시)

tb_PP

pp_seq pp_no pp_address pp_cn
46 100 55555 777777
47 101 666666 888888

tb_PP_OO

pp_oo_seq pp_seq oo_no
6 46 3331
7 46 3332
8 47 3333
9 47 3334

 

 

 

tb_pp에서 select해올때 oo_no를 pp_seq가 같은 번호로 가져오려함

 

여러값을 하나로 합쳐서 가져올때 사용하는 함수 group_concat

 

select 


, group_concat(B.oo_no separator ', '
from tb_pp A
, tb_pp_oo B
where A.pp_seq = B.pp_seq 

 

separator 함수를 써서 값을 합칠때 | 로 합칠지 , 로 합칠지 정하기

 

--서브쿼리를 사용한 완성 쿼리--

SELECT 

, (SELECT GROUP_CONCAT(B.OO_NO SEPARATOR ', ') FROM TB_PP_OO B WHERE B.PP_SEQ = A.PP_SEQ) AS OO_NO
FROM TB_PP A
GROUP BY A.PP_SEQ desc

 

안되던 쿼리는
SELECT 

, (SELECT GROUP_CONCAT(B.OO_NO SEPARATOR ', ') FROM TB_PP_OO B WHERE B.PP_SEQ= A.PP_SEQ) AS OO_NO
FROM TB_PP A
LEFT OUTER JOIN TB_PP_OO B ON A.PP_SEQ= D.PP_SEQ-------> 이거 지우기
WHERE A.PP_SEQ= D.PP_SEQ------->이거 지우기 
GROUP BY A.PP_SEQ desc

 

반응형