Database
[mysql] left join 안에서 group_concat
닉의네임
2023. 3. 14. 15:55
반응형
이런 구조를 원했는데 이 구조가 left join 으로 전체쿼리속에 들어가야 하는 상황

left join 조건절에서 item_no 와 scate_cd 조건으로 걸어줌
left join (
select
uda.item_no ,
uda.scate_cd ,
group_concat(uda.gattr_no order by uda.ica_priority asc, uda.attr_no desc separator '|') as gattr_no ,
group_concat(uda.attr_no order by uda.ica_priority asc separator '|') as attr_no ,
group_concat(uda.attr_nm order by uda.ica_priority asc, uda.attr_no desc separator '|') as attr_nm ,
group_concat(uda.priority order by uda.ica_priority asc, uda.attr_no desc separator '|') as priority ,
group_concat(uda.mc_cd order by uda.ica_priority asc, uda.attr_no desc separator '|') as mc_cd ,
group_concat(uda.mc_nm order by uda.ica_priority asc, uda.attr_no desc separator '|') as mc_nm
from
(
select
iia.item_no ,
ima.gattr_no ,
ica.priority as ica_priority ,
ica.scate_cd ,
group_concat(ima.attr_no order by ima.priority asc separator ',') as attr_no ,
group_concat(ima.attr_nm order by ima.priority asc, ima.attr_no desc separator ',') as attr_nm ,
group_concat(ima.priority order by ima.priority asc, ima.attr_no desc separator ',') as priority ,
group_concat(distinct imc.mc_cd order by ima.priority asc, ima.attr_no desc separator ',') as mc_cd ,
group_concat(distinct imc.mc_nm order by ima.priority asc, ima.attr_no desc separator ',') as mc_nm
from
itm_mng_attr ima
inner join itm_mng_attr_group imag on
ima.gattr_no = imag.gattr_no
and imag.use_yn = 'Y'
and imag.gattr_type = 'ATTR'
inner join itm_item_attr iia on
ima.attr_no = iia.attr_no
and iia.use_yn = 'Y'
inner join itm_category_attr ica on
ica.attr_no = ima.gattr_no
and ica.use_yn = 'Y'
left join (
select
imc.ref_1,
imc.mc_cd,
imc.mc_nm
from
itm_mng_code imc
where
gmc_cd = 'wine_uda_id' ) imc on
imc.ref_1 = ima.gattr_no
where
ima.use_yn = 'Y'
and iia.item_no in ('158036890')
group by
ima.gattr_no,
iia.item_no,
ica.scate_cd ) as uda
group by
uda.item_no, uda.scate_cd ) uda_ATTR on
ii.item_no = uda_ATTR.item_no
and uda_ATTR.scate_cd = ic.scate_cd
반응형