Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql &引用;无法绑定多部分标识符";内连接_Mysql_Sql - Fatal编程技术网

Mysql &引用;无法绑定多部分标识符";内连接

Mysql &引用;无法绑定多部分标识符";内连接,mysql,sql,Mysql,Sql,我以前在另一个查询中遇到过这个问题,我没有像预期的那样在查询之前包含表名,但是对于今天的问题,我不确定它为什么会抛出这个错误,因为在连接发生之前,表名已经非常清楚地提到了: SELECT TKOPOCs.Name EightIDs.Email Cranes.CraneName FROM Cranes, EightIDs INNER JOIN TKOPOCS ON Cranes.CraneID = TKOPOCs.CraneID INNER JOIN Mills

我以前在另一个查询中遇到过这个问题,我没有像预期的那样在查询之前包含表名,但是对于今天的问题,我不确定它为什么会抛出这个错误,因为在连接发生之前,表名已经非常清楚地提到了:

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表是什么以及其中包含什么,那么是什么导致了问题?

连接链(逻辑上)在逗号分隔的表之前从左到右计算。在连接链中包括起重机,以使其立柱可用:

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

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

我会接受这个答案,因为它解决了这个问题,但我很好奇:你是说,在我最初的查询中,它在查看表名之前先查看了join语句,然后再查看FROM关键字?对于SELECT,从FROM列表开始。在“发件人”列表中,首先处理所有联接链,从左到右依次处理。然后处理逗号分隔的表。然后转到WHERE子句等。尽量避免将显式连接与逗号分隔的表混合使用!特别是当涉及到外部联接时。我接受这个答案,因为它解决了问题,但我很好奇:您是说,在我最初的查询中,它在查看表名之前先查看联接语句,然后再使用FROM关键字?对于SELECT,从FROM列表开始。在“发件人”列表中,首先处理所有联接链,从左到右依次处理。然后处理逗号分隔的表。然后转到WHERE子句等。尽量避免将显式连接与逗号分隔的表混合使用!特别是当涉及到外部连接时。