2012-05-04 24 views
0

Oracle 11g如何查詢表以獲得一行需要兩個連接到兩個單獨的ID?

PERSON表包含賣家和買家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

剛剛加入到Person表兩次

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) 

您可能需要外連接,如果有可能是買方或賣方是未知的。

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 

當時無法測試自己

相關問題