子查询 - W3Resources

Subquery - W3Resources

我想知道我的代码是否有效? 关于 this w3school exercise 的问题 #3:

SELECT first_name, last_name
FROM employees
WHERE 
    manager_id IS NOT NULL
    AND manager_id IN (
        SELECT manager_id
        FROM departments
        WHERE location_id IN (
            SELECT location_id 
            FROM locations
            WHERE country_id='US' 
        )
    )
;

是的,您的代码应该可以工作。

请注意,SQL 中检查 manager_id 是否不为空的部分是多余的,可以删除(IN 子句已经确保 manager_id 已设置)。

可以使用一组 JOIN 来优化查询,例如:

SELECT e.first_name, e.last_name
FROM employees e
INNER JOIN departments d ON d.manager_id = e.manager_id
INNER JOIN locations l ON l.department_id = d.department_id AND l.country_id='US'