2012-05-04 2 views
0

오라클 11g테이블을 쿼리하여 두 개의 별도의 ID에 두 개의 조인이 필요한 행 하나를 얻으려면 어떻게해야합니까?

PERSON 테이블에는 판매자 ID와 구매자 ID가 모두 들어 있습니다. 구매자와 판매자를 어떻게 단일 결과 집합으로 만들 수 있습니까? 구매자 또는 판매자를 나열 할 수 있지만 둘 다 표시 할 수는 없습니다.

Person 
================= 
PersonID First Last 
    1  Joe  Camel 
    2  Ronald McFly 
    3  Barbara Wawa 

SalesDetail 
========================= 
TransID Amount SellerID CustomerID 
98   500  1  2 
99   700  3  1 

Desired Result 
=========================================== 
SellerID SellerLast BuyerID BuyerLast Amount 
1   Camel  2  McFly  500 
3   Wawa  1  Camel  700 

답변

1

그냥 두 번

SELECT sd.sellerID, 
     seller.last sellerLast, 
     sd.buyerID, 
     buyer.last buyerLast, 
     sd.amount 
    FROM salesDetail sd 
     JOIN person seller ON (sd.sellerID = seller.personID) 
     JOIN person buyer ON (sd.buyerID = buyer.personID) 

Person 테이블에 가입 당신은 구매자 또는 판매자 중 하나가 불명 한 것을 가능하면 외부 조인 할 수 있습니다.

1

순간에 자신을 테스트 할이

select seller.sellerid, 
     seller.last, 
     buyer.buyerid, 
     buyer.last, 
     amount 
from 
person buyer 
inner join salesdetail on buyer.personid = salesdetail.cutomerid 
inner join person seller on salesdetail.sellerid = seller.personid 

수없는 시도

관련 문제