Sql server 2005 连接两列上的表
我有一张这样的桌子Sql server 2005 连接两列上的表,sql-server-2005,join,Sql Server 2005,Join,我有一张这样的桌子 ==================== companyid, companyname 2 com A 3 com B 4 com C 5 com D 6 com E 我运行了一个查询,结果数据集如下所示 ==================================== name | InvoiceTo_ID | ProviderID ------------
====================
companyid, companyname
2 com A
3 com B
4 com C
5 com D
6 com E
我运行了一个查询,结果数据集如下所示
====================================
name | InvoiceTo_ID | ProviderID
------------------------------------
p1 2 3
p2 2 4
p3 6 3
p4 5 6
现在我想要的是将我的数据集与上面的companys
表连接起来,这样对于InvoiceTo\u ID
我可以得到一个相应的名称,对于ProviderID
我可以得到一个相应的名称。这是最终结果
======================================================================
name | InvoiceTo_ID | ProviderID | InvoiceTo_Name | ProviderName
----------------------------------------------------------------------
p1 2 3 com A com B
p2 2 4 com A com C
p3 6 3 com E com B
p4 5 6 com D com E
如何构造联接,使其在不创建重复行的情况下同时联接invoiceID和ProviderID。您需要将查询联接到
companys
表两次才能获得最终结果。一个联接将获得InvoiceTo\u Name
,第二个联接将获得ProviderName
:
select q.name,
q.InvoiceTo_ID,
q.ProviderID,
c1.companyname InvoiceTo_Name,
c2.companyname ProviderName
from yourquery q
left join companies c1
on q.InvoiceTo_ID = c1.companyid
left join companies c2
on q.ProviderID = c2.companyid;
看。这就产生了一个结果:
| NAME | INVOICETO_ID | PROVIDERID | INVOICETO_NAME | PROVIDERNAME |
--------------------------------------------------------------------
| p1 | 2 | 3 | com A | com B |
| p2 | 2 | 4 | com A | com C |
| p3 | 6 | 3 | com E | com B |
| p4 | 5 | 6 | com D | com E |