mysql - 子查询 - W3Resources

标签 mysql database join where-clause sql-in

我想知道我的代码是否有效? 关于 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' 
        )
    )
;

最佳答案

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

请注意,检查 manager_id 是否为空的 SQL 部分是多余的,可以删除(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'

关于mysql - 子查询 - W3Resources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54013262/

相关文章:

python - 需要指导将 python 脚本中的数据插入 MySQL 数据库

mysql - SQL 2 列主键,但想要搜索其中一列,我应该将其设为单独的键吗?

java - 在具有特定 mysql 主机的远程主机上使用 SSH 隧道连接到 MySql 数据库

C++ Qt sqlite 数据库连接问题

python - 如何将整数列表加入一个整数python

mySQL相关子查询

php - group_concat : have values display in a new line on the browser

mysql - 是在 mysql 中为所有博文评论创建一个大表,还是为每个帖子创建多个表更好?

php - 如何使用 PDO/php 从具有相同 ID 的第二个表中提取数据?

mysql - 两个左外连接未正确求和