MySQL - 尽管未在连接中引用,但未找到列

时间:2015-07-28 07:31:58

标签: mysql join

我的MySQL JOIN大致采用以下格式:

SELECT DISTINCT employees.empl_id,
                employees.name,
                departments.dep_id,
                departments.name,
                buildings.id         AS building_id,
                buildings.address    AS building_address
                buildings.department AS building_department
FROM employees
     LEFT JOIN employees USING (empl_id)
     LEFT JOIN departments USING (dep_id)
     LEFT JOIN buildings
            ON buildings.department = departments.dep_id

当我运行此查询时,我收到错误:

ERROR 1054 (42S22) at line 1: Unknown column 'MyDB.employees.dep_id' in 'on clause'

即使员工中真的不存在dep_id列,但我从未在JOIN中引用employees.dep_iddep_iddepartments的列,而不是员工! !

这可能是由于混合了USINGON条款吗?

这个JOIN是我写的脚本的一部分,它是使用MySQL版本>完成的。 5,没有发生错误。我正在调整脚本以使用旧版本的MySQL并遇到此错误。 mysql --version收益:

mysql  Ver 14.7 Distrib 4.1.22, for pc-linux-gnu (i686) using readline 4.3

我通读this,但它对我没有帮助。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:2)

重点是你在这里加入:

LEFT JOIN departments USING (dep_id)

表示

LEFT JOIN departments ON employees.dep_id = departments.dep_id

这就是导致错误的原因。