SQL内连接和子查询

时间:2014-09-29 11:54:22

标签: sql sql-server

我正在尝试在内部联接上使用子查询从部门中没有程序员的表中获取所有部门编号和名称,但是我遇到了一些麻烦,因为它没有返回任何值。这是我的代码,感谢您的帮助。

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%')

2 个答案:

答案 0 :(得分:1)

从我可以收集的内容来看,你需要这样的东西:

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包含' pro'。

的员工。

答案 1 :(得分:0)

试试这个:

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'));