考虑以下关系模式:
employee(empId, empName, empDept)
customer(custId, custName, salesRepId, rating)
salesRepId 是外键,指的是员工关系的 empId。假设每位员工至少向一位客户进行销售。以下查询返回什么?
SELECT empName
FROM employee E
WHERE NOT EXISTS ( SELECT custId
FROM customer C
WHERE C.salesRepId = E.empId
AND C.rating <> `GOOD`);
(A)所有员工的姓名,他们的至少一位客户的评级为“良好”。
(B)所有员工的姓名,其中最多一位客户的评级为“良好”。
(C)所有员工的姓名,其客户均未获得“良好”评级。
(D)所有员工的姓名,其所有客户均获得“良好”评级。答案: (D)
说明:如果任何员工从他们的任何客户那里收到了“GOOD”以外的评级,那么内部查询将返回一些行;
NOT EXISTS 将返回 false,因此不会打印这些员工。
只有那些从所有客户那里获得“良好”评级的员工才会被打印出来。
这个问题的测验