2016-04-14 160 views
0

我想根据多个字段连接表,其中一个来自直接表,另一个来自邻接表。使用跨多个表的多个字段来连接表

enter image description here

我想加入的“装备”,以“合同细节”上ContractDetailID只有当设备客户id =合同客户ID。

+1

您正在使用哪个数据库管理系统预先感谢您?你也可能想阅读:http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/ 285557#285557 –

+0

Microsoft SQL DB – Charles

+0

[SQL join multiple tables]可能重复(http://stackoverflow.com/questions/9853586/sql-join-multiple-tables) –

回答

0
declare @contract as table(
    contractid int, 
    customerid int 
) 

declare @contractDetail as table(
    contractDetailId int, 
    ContractID int 
) 

declare @equipment as table(
    equipmentId int, 
    contractDetailId int, 
    CustomerId int 
) 

insert into @contract values(5,3) 
insert into @contractDetail values(10,5) 
insert into @equipment values(1,10,3) 

select e.* 
from 
    @contract c inner join 
    @contractDetail cd on (c.contractId = cd.contractID) inner join 
    @equipment e on (c.customerId = e.CustomerId and e.contractDetailId = cd.contractDetailId)