SELECT
COUNT(emp.empNo)
FROM
Employee emp
WHERE
NOT EXISTS (SELECT dept.empNo
FROM department dept
WHERE emp.empNo = dept.empNo);
where
条件(其中emp.empNo = dept.empNo)在上述查询中表示什么?无论有没有条件,我都会得到不同的结果。我是Oracle的新手。任何人都可以帮助我理解吗?
答案 0 :(得分:2)
您的查询显示在emp表中不存在但在dept表中显示的员工数。 假设我们有两个表emp和dept:
emp dept
1 1
2 2
3 3
4 4
5 5
6
7
从给定的表中我们在两个表中都有emp 1到5但是在dept表中有2个雇员(6,7),这些雇员在emp表中不存在而你的查询显示那些emp的计数,即2
答案 1 :(得分:0)
查询意味着您只查找那些不存在与员工的empNo具有相同empNo的部门的员工。
我想这是一个查询,以查找那些不是任何部门经理的员工(如果我们假设部门的empNo是部门经理的empNo)。
但是,如果您提供员工和部门表的架构会更好。
答案 2 :(得分:0)
该查询基本上是在寻找不属于某个部门的员工人数。
NOT EXISTS
表示附带的查询不返回任何行。因此,对于在Department表中找不到匹配行的任何员工,他们都会被计算在内。
答案 3 :(得分:0)
与说
相同SELECT
COUNT(emp.empNo)
FROM
Employee emp
WHERE
emp.EmpNo NOT IN ( SELECT
empNo
FROM
department)