2011-12-07 42 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,一个独立于实体属性的字段(如名称,地址等)