2
我们希望找到有员工谁可以做的员工做了一些工作在depertment 20以下两个查询是否会一致提供相同的输出?
SELECT deptno
FROM dept
WHERE EXISTS(SELECT *
FROM emp x
WHERE x.deptno = 20
AND EXISTS(SELECT *
FROM emp y
WHERE y.job = x.job
AND y.deptno = dept.deptno))
AND deptno <> 20;
SELECT deptno
FROM dept
WHERE EXISTS(SELECT *
FROM emp x
WHERE x.deptno = dept.deptno
AND EXISTS(SELECT *
FROM emp y
WHERE y.job = x.job
AND y.deptno = 20))
AND deptno <> 20;
'x'和'y'不能相同,因为'x.deptno = 20'和'y.deptno <> 20'或反之亦然。 – 2011-12-28 13:53:01
@ypercube:好点!看起来像我误解了这个问题。我会编辑答案。 – Andomar 2011-12-28 14:01:21