안녕하세요. 아래와 같이 두개의 테이블이 있다고 한다면
product_code_mapping 기준으로 계층구조의 데이터 양식을 구해 오고 싶습니다.
product_master 테이블 기준으로 본다면 connect by 로 구해올수 있겠지만
product_code_mapping 기준으로 구하고 싶은데 방법이 있을까요?
WITH product_master AS
(SELECT 11 AS master_id
,'first_master' AS master_name
,NULL AS high_master_id
,1 AS product_level
FROM dual
UNION ALL
SELECT 22 ,'sub1_first_master',11,2
FROM dual
UNION ALL
SELECT 33,'sub2_first_master',11,2
FROM dual
UNION ALL
SELECT 55,'sub1_second_master',44 ,2
FROM dual
UNION ALL
SELECT 66,'ub2_second_master',44,2
FROM dual
UNION ALL
SELECT 44,'second_master',NULL,1
FROM dual)
SELECT *
FROM product_master a
connect by PRIOR a.master_id = a.high_master_id
START WITH product_level = 1
;
WITH product_code_mapping AS
(SELECT 'AA' AS product_id
,22 AS master_id
,11 AS high_master_id
,3 AS order_no
FROM dual
UNION ALL
SELECT 'AA',33,11,2
FROM dual
UNION ALL
SELECT 'AA',66,44,1
FROM dual )
SELECT *
FROM product_code_mapping a
where a.product_id = 'AA';
product_code_mapping 의 master_id 컬럼의 data는 product_master 2레벨의 Data 입니다.
product_code_mapping 테이블 기준의 order_no 컬럼 기준으로 1레벨도 같이 보여주고 싶습니다.
원하는 결과는 아래와 같습니다.
master_name master_id
second_master 44
sub2_second_master 66 <-- product_code_mapping 의 Data
first_master 11
sub2_first_master 22 <-- product_code_mapping 의 Data
sub1_first_master 33 <-- product_code_mapping 의 Data
|