[英]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 JOIN
是ON
的东西,然后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.