【发布时间】:2019-02-19 07:50:36
【问题描述】:
我编写了一个 sql 代码来从我的 MySQL 数据库中获取数据。但是当我运行 sql 查询时它返回一个错误。
我如何解决这个问题。我是新手,我用谷歌搜索,但找不到解决方案。
1054 - 'on clause' 中的未知列 'departments.department_id'
SELECT
staff_data.first_name,
staff_data.middle_name,
staff_data.last_name,
staff_data.gender,
staff_data.civil_status,
staff_data.birthday,
staff_data.address_line_1,
staff_data.address_line_2,
staff_data.address_line_3,
staff_data.contact_no_1,
staff_data.contact_no_2,
staff_data.nationality,
staff_data.religion,
staff_data.email,
staff_data.is_deleted,
staff_data.nic_number,
staff_data.is_admin,
departments.department_name,
job_positions.position_name
FROM
departments,
employee_position
INNER JOIN job_positions ON job_positions.department_id =
departments.department_id
AND departments.department_id = job_positions.department_id
AND employee_position.position_id = job_positions.position_id
INNER JOIN staff_data ON employee_position.user_id =
staff_data.nic_number
WHERE
employee_position.is_valid = 1
【问题讨论】:
-
很明显,但您在
departments表中没有列department_id -
今日提示:始终使用现代、明确的
JOIN语法。更容易编写(没有错误),更容易阅读和维护,如果需要更容易转换为外连接! (显式 JOIN 链在逗号分隔的连接之前进行评估,因此您的 ON 子句没有将部门列包含在范围内。)