任何人都可以解释为什么这个查询:
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name LIKE '%u%'
)
AND salary > (SELECT AVG(salary)
FROM employees);
返回的行数少于这个嵌套的行:
SELECT employee_id, last_name, salary
FROM employees
WHERE department_id IN (SELECT department_id
FROM employees
WHERE last_name LIKE '%u%'
AND salary > (SELECT AVG(salary)
FROM employees);
)
答案 0 :(得分:2)
第一个返回满足以下条件的所有员工:
第二个回报符合这些条件的所有员工:
这两个条件非常不同。我不希望它们返回相同的结果集。
此外,每当您在查询中有多个表时,您应该使用表别名和的缩写的表别名,您应该限定所有列名。