SQL内部连接和子查询
问题描述:
我想在内部连接上使用子查询从部门中没有程序员的表中取回所有部门编号和名称,但是由于它返回时遇到了一些麻烦没有价值。这是我的代码,谢谢你的帮助。SQL内部连接和子查询
select Departments.Department_Name, Departments.Department_No
from employees inner join departments
on departments.department_No = employees.Department_No
where Employees.Department_No !=
(select Department_Name
from Employees, Departments
where Job_ID = '%pro%')
答
据我所知,你想是这样的:
select d.Department_Name, d.Department_No
from departments d
WHERE NOT EXISTS (SELECT 1 FROM Employees
WHERE d.Department_No = Department_No
AND Job_ID LIKE '%pro%')
这将选择所有的部门,对此不存在的雇员的job_ib包含“亲”。
+0
谢谢,这很有效。 – BamBam 2014-09-29 12:31:52
答
试试这个:
select d1.Department_Name,d1.Department_No
from departments d1
where d1.Department_No in (select e1.Department_No
from Employees e1
where e1.Department_No=d1.Department_No and
e1.job_id not in ('programmer'));
您department_name'比较''到department_no'。这看起来不正确。 – 2014-09-29 11:55:31
你能提供一个表/结果的例子吗? – 2014-09-29 11:56:06
您的子查询正在使用'Employees,Departments'而没有加入 - 这看起来不正确。你应该用你的表格结构,样本数据和期望的结果来编辑你的问题。 – Taryn 2014-09-29 11:56:52