我以前在另一个查询中遇到过这个问题,在该查询中我没有像期望的那样在查询之前包含表名,但是对于今天的问题,我不确定为什么会引发此错误,因为在JOIN发生之前很清楚地提到了表名:
SELECT
TKOPOCs.Name
EightIDs.Email
Cranes.CraneName
FROM
Cranes, EightIDs
INNER JOIN TKOPOCS
ON Cranes.CraneID = TKOPOCs.CraneID
INNER JOIN Mills
ON Cranes.MILLID = Mill.MillID
WHERE EightIDs.EID = TKOPOCs.EID
发生异常或Cranes.CraneID和Cranes.MILLID,但是查询的SELECT部分中的项目似乎正常工作-当我键入“ Cranes”时,它甚至自动填充列名称。因此,它非常清楚地知道Crane表是什么,表中有什么,那么可能是什么引起了问题呢?
最佳答案
JOIN
链在逻辑上(从左到右)在逗号分隔的表之前进行评估。在连接链中包括起重机,以使其可用的列:
SELECT
TKOPOCs.Name
EightIDs.Email
Cranes.CraneName
FROM
Cranes
INNER JOIN TKOPOCS
ON Cranes.CraneID = TKOPOCs.CraneID
INNER JOIN Mills
ON Cranes.MILLID = Mill.MillID
INNER JOIN EightIDs
ON EightIDs.EID = TKOPOCs.EID