2011-12-07 43 views
1

我需要寫一個選擇,產生以下內容:如何返回使用樞軸或類似的查詢結果

r_country | s_country |  s_name | r_name | msg | date 
    ca  au   bill  bob  'hi'  2/12/2010 

這裏是我的數據:

tableA 

EmployeeName | EmployeeID | country 
bill    1    au 
bob    2    ca 


tableB 

Sender  | Reciever | Msg | date 
bill    bob  'hi' 12/12/2010 

早些時候,我試圖做一個加入,但我認爲這隻會返回用戶的姓名我加入的數據

回答

3

您需要加入兩次。

SELECT 
    receiver.country AS r_country, 
    sender.country  AS s_country, 
    data.Sender   AS s_name, 
    data.Receiver  AS r_name, 
    data.msg   AS msg, 
    data.date   AS date 
FROM 
    TableB    AS data 
LEFT JOIN 
    TableA    AS sender 
    ON sender.EmployeeName = data.Sender 
LEFT JOIN 
    TableA    AS receiver 
    ON receiver.EmployeeName = data.Receiver 

另請注意,但是,您的數據(事實)表不應該在其中包含名稱。你應該使用實體的UniqueID,一個獨立於實體屬性的字段(如名稱,地址等)