gpt4 book ai didi

Mysql 选择 4 个连接表的值

转载 作者:行者123 更新时间:2023-11-29 16:58:27 26 4
gpt4 key购买 nike

我正在尝试获取在财务部门工作的所有具有“高级员工”头衔的员工的名字、姓氏、起始日期和结束日期。

员工:

# emp_no, birth_date, first_name, last_name, gender, hire_date
'10001', '1953-09-02', 'Georgi', 'Facello', 'M', '1986-06-26'
'10002', '1964-06-02', 'Bezalel', 'Simmel', 'F', '1985-11-21'
'10003', '1959-12-03', 'Parto', 'Bamford', 'M', '1986-08-28'

员工.部门

# dept_no, dept_name
'd002', 'Finance'
'd003', 'Human Resources'

员工.dept_manager

# emp_no, dept_no, from_date, to_date
'110022', 'd001', '1985-01-01', '1991-10-01'
'110039', 'd001', '1991-10-01', '9999-01-01'

员工.职称

# emp_no, title, from_date, to_date
'10001', 'Senior Engineer', '1986-06-26', '9999-01-01'
'10002', 'Staff', '1996-08-03', '9999-01-01'

当前输入

SELECT emps.first_name,emps.last_name, t.title, start_date, end_date
FROM employees emps INNER JOIN
employees.dept_manager dm INNER JOIN
employees.titles t INNER JOIN
employees.departments d
ON t.emp_no = emps.emp_no
WHERE t.title = 'Senior Staff' and d.dept_name = 'Finance' ;

这导致错误 1052:列中的 from_date 不明确

对于获得正确的输出有什么建议吗?

最佳答案

如果您与其他表具有相同的列名称,则需要表别名

其次,您当前的查询有许多不正确的语法,例如没有 ON 子句的 JOIN 。所以,正确的版本应该是这样的:

SELECT emps.first_name,emps.last_name, t.title, t.start_date, t.end_date
------------------------------------------------^-------------^
FROM employees emps INNER JOIN
employees.dept_manager dm
ON emps.emp_no = dm.emp_no INNER JOIN
employees.titles t
ON t.emp_no = emps.emp_no INNER JOIN
employees.departments d
ON d.dept_no = dm.dept_no
WHERE t.title = 'Senior Staff' and d.dept_name = 'Finance';

关于Mysql 选择 4 个连接表的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52411663/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com