2010-04-24 3 views
1

SQL에서는 항상 내부 조인 문을 기본 쿼리 및 하위 쿼리로 쓸 수 있습니까? 예를 들어SQL에서 내부 쿼리를 항상 메인 쿼리와 서브 쿼리로 작성할 수 있습니까?

,

select * from gifts g where g.giftID in (select giftID from sentGifts); 

는이 가입하고 sentGifts 테이블에 보낸 선물을 표시 할 수 있지만 그 하위 쿼리 내부에 있기 때문에 sentTime를 표시 할 수 없습니다?

+3

는 여러 컬럼에 가입 할 때 그 일을 시도하고 데이터베이스 엔진은 튜플 생성을 지원하지 않습니다

당신은 같은 쿼리에 그렇게 할 수 없습니다. –

+0

중복됨 : http://stackoverflow.com/questions/2676874/correlated-query-subquery-vs-join-query –

답변

4

아니요, 조건이 단일 값인 경우에만 사용할 수 있습니다.

select * 
from gifts g 
inner join sentGifts s on s.giftType = g.giftType and s.giftDate = g.giftDate 
3

아니요, 모든 내부 결합을 다시 작성할 수 없습니다.

경우에 따라 내부 조인 조건에 둘 이상의 열이 포함되고 IN이 반드시 작동하지 않을 수도 있습니다.

또한 경우에 따라 내부 조인 조건은이 쿼리/하위 쿼리 기술이 전혀 작동하지 않는 범위 또는 복잡한식이 될 수 있습니다 (예 : 중복되는 간격 찾기).