繁体   English   中英

如何在SQL Server 2014中的单个表中的外键内联接多个外键

[英]How to join a multiple foreign key within the foreign key in a single table in SQL Server 2014

我有运单表,其中joborderID是Joborder表中Joborder表的外键,还有FleetTypeID,这是FleetTypeID的外键,在FleetType表中,还有两个外键ItemsID和FleetTypeItemsID

问题是我想在waybill_table中检索joborder_table数据,但joborder_table中的外键未加入

Select DISTINCT FleetTypeItem as Fleet_Items, 
                ItemsName as Items
from  ItemsTbl, FleetTypeItemTbl
inner join FleetTypeTbl on FleetTypeItemTbl.FleetTypeItemID=FleetTypeTbl.FleetTypeItemID and
                           ItemsTbl.ItemsID=FleetTypeTbl.ItemsID

这没有运行,请帮助我这是我的项目

您需要分离出联接。 另外,如果这些列存在于多个表中,则必须在选择的表中引用该表,以便知道在哪里查找:

SELECT DISTINCT FleetTypeItemTbl.FleetTypeItem as Fleet_Items, ItemsTbl.ItemsName as Items 
FROM FleetTypeItemTbl
INNER JOIN FleetTypeTbl
ON FleetTypeItemTbl.FleetTypeItemID = FleetTypeTbl.FleetTypeItemID
INNER JOIN ItemsTbl
ON ItemsTbl.ItemsID = FleetTypeTbl.ItemsID

所以,你SELECT的东西FROM别的, INNER JOINON的东西,然后INNER JOIN是到别的东西。

因此,与其说FROM 1, 2, and 3 ON these joins ,不如说FROM 1, JOIN 1 = 2, JOIN 2 = 3 ...如果有道理。

这样也可以使表别名更容易理解:

SELECT DISTINCT FTI.FleetTypeItem as Fleet_Items, I.ItemsName as Items 
FROM FleetTypeItemTbl FTI
INNER JOIN FleetTypeTbl FT
ON FTI.FleetTypeItemID = FT.FleetTypeItemID
INNER JOIN ItemsTbl I
ON I.ItemsID = FT.ItemsID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM