这是我正在进行的任务的一部分。
我有一个名为COMPANY
的数据库,其中有6个表
EMPLOYEE
DEPARTMENTS
DEPT_EMP
TITLES
SALARIES
DEPT_MANAGER
现在我必须列出每个部门的工程师人数。
我提出了以下问题:
select departments.dept_name as Department_name,
count(titles.title) as No_Of_Engineers
from departments,
titles
where titles.emp_no = dept_emp.emp_no
and dept_emp.dept_no = departments.dept_no
and titles.title like "% engineer %"
group by departments.dept_no;
但这给了我错误
未知栏' dept_emp.emp_no'在' where子句'
但是我的dept_emp
表有一个名为emp_no
的列。
谁能看到这个错误?
提前致谢
答案 0 :(得分:1)
您错过了dept_emp
的加入:
select departments.dept_name as Department_name,
count(titles.title) as No_Of_Engineers
from departments
INNER JOIN dept_emp
ON(dept_emp.dept_no = departments.dept_no)
INNER JOIN titles
ON(titles.emp_no = dept_emp.emp_no)
WHERE titles.title like "% engineer %"
group by departments.dept_no;
我还更正了你的连接,请尽量避免使用隐式连接语法(以逗号分隔)并使用正确的连接语法。