서브쿼리에서 두개 이상의 데이터를 참조하려면.

by 안지민 posted Mar 03, 2009

create class A(
aaa int,
bbb int,
ccc list(B)
);

create class B(
ddd int,
eee int,
fff int
);

create vclass C(
vaaa int,
vbbb int, 
vB B
) as
select aaa, bbb, (select B from B where B in ccc and rownum = 1) from A;

select vaaa, vbbb, vB.ddd, vB.eee, vB.fff where C;

 

지금은 이런식으로 가상 테이블을 한번 거쳐야만 하던데요

그냥 서브쿼리로 하려고 하니까

select aaa, bbb, (select ddd from B where B in ccc and rownum = 1), (select eee from B where B in ccc and rownum = 1), (select fff from B where B in ccc and rownum = 1) from A

이렇게 동일한 서브쿼리를 여러번 날려야 하던데요.. 이건 비효율적인 방법 맞죠?

이렇게 하지 않고 방법이 있나요?