SQL查询同一个表两次

时间:2018-01-22 12:40:37

标签: sql alias

我有两个表,我需要在第一个表中查询同一列两次,对于第二个表中的两个列,并从第一个表返回第二个数据列。

所以,

表1:资源

ID, URL

1, a.com

2, b.com

3, c.com

表2:推介

SourceID, ReferralID

1, 1

1, 3

3, 1

我需要结果;

SourceURL, ReferralURL

a.com, a.com

a.com, c.com

c.com, a.com

2 个答案:

答案 0 :(得分:1)

您需要两次加入表格

    select r1.URL as SourceURL, r2.URL as ReferralURL 
    from Referrals r
    inner join Resources r1 on r.SourceID = r1.ID
    inner join Resource r2 on r.referalID = r2.ID

答案 1 :(得分:1)

您需要连接两次才能获得结果(首先获取源网址,然后获取引荐网址)

SELECT
    RES1.URL AS SourceURL
    ,RES2.URL AS ReferralURL
FROM Referrals REF
INNER JOIN Resources RES1
    ON REF.SourceID = RES1.ID
INNER JOIN Resources RES2
    ON REF.ReferralID = RES2.ID