안녕하세요..
초보 개발자 입니다.
쿼리 관련해서 질문좀 드리고 싶습니다.
답변 부탁드리겟씁니다 ㅠㅠ
두개의 테이블
1번테이블
i1 | a |
i2 | a |
i3 | b |
i4 | b |
2번테이블
a | b1 |
b | b2 |
b | b3 |
b | b4 |
이런식으로 데이터가 존재 할때
결과가 아래와 같이 나오개 하고 싶습니다 ㅠㅠ
a | i1 | b1 |
a | i2 | |
b | i3 | b2 |
b | i4 | b3 |
b | b4 |
이런식으로 값을 구하고 싶습니다. i or b의 숫자의 순서는 상관없구요..
M:M 조인이다 보니 도저히 답이 나오지 않네요 ㅠㅠ
테이블 설계가 잘못된거는 알고 있습니다.... 똥치우는 거라서요 ㅠㅠ
답변 부탁드리겠습니다.
감사합니다.
WITH t1 AS ( SELECT 'i1' a, 'a' b FROM DUAL UNION ALL SELECT 'i2' a, 'a' b FROM DUAL UNION ALL SELECT 'i3' a, 'b' b FROM DUAL UNION ALL SELECT 'i4' a, 'b' b FROM DUAL ) , t2 AS ( SELECT 'a' b, 'b1' c FROM DUAL UNION ALL SELECT 'b' b, 'b2' c FROM DUAL UNION ALL SELECT 'b' b, 'b3' c FROM DUAL UNION ALL SELECT 'b' b, 'b4' c FROM DUAL ) SELECT NVL ( t1.b, t2.b ) , t1.a , t2.c FROM ( SELECT ROW_NUMBER () OVER ( PARTITION BY b ORDER BY a ) rn , b , a FROM t1 ) t1 FULL OUTER JOIN ( SELECT ROW_NUMBER () OVER ( PARTITION BY b ORDER BY c ) rn , b , c FROM t2 ) t2 ON t1.b = t2.b AND t1.rn = t2.rn ORDER BY 1, 2, 3