가능은 합니다.
다만, 꼭 이래야만 하는가? 연관 없는 자료끼리의 조인이 과연 필요한가? 하는 의문은 남습니다.
ONE 쿼리가 항상 좋은 것은 아닙니다.
때로는 각각의 쿼리가 좋을 때가 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | SELECT a.seq , b.rn , MIN (b. name ) name , MIN (b.type) type , MIN (b.age) age FROM a , ( SELECT seq , ROW_NUMBER() OVER(PARTITION BY seq ORDER BY 1) rn , name , null type , null age FROM b UNION ALL SELECT seq , ROW_NUMBER() OVER(PARTITION BY seq ORDER BY 1) rn , null name , type , null age FROM c UNION ALL SELECT seq , ROW_NUMBER() OVER(PARTITION BY seq ORDER BY 1) rn , null name , null type , age FROM d ) b WHERE a.seq = b.seq(+) GROUP BY a.seq, b.rn ORDER BY a.seq, b.rn ; |