mysql - 哪个 MySQL Select 查询是正确的

标签 mysql select having

请注意,我有类似的主题和不同的问题,

我正在学习MySQL。我遇到了一些选择题。 如果我怀疑答案是什么或者不相信它是正确的,我就开始搜索 google、stackoverflow 和 mysql 网站。 然而,对于某些人来说,我仍然无法确认正确答案是什么。

所以我在这里问这个问题。

问题: 表 Employees 已创建。您想要检索至少有一名下属的员工的信息。您将执行以下哪个查询来完成任务?

  • A. 从员工中选择员工 ID、姓氏、职位 ID、部门 ID,其中员工 ID 存在(选择经理 ID,其中经理 ID 为 NULL);

  • B. 从员工中选择员工 ID、姓氏、职位 ID、部门 ID,其中员工 ID 为 IN(从员工中选择经理 ID,其中经理 ID 不为空);

  • C. 从员工外部 WHERE EXISTS 中选择员工 ID、姓氏、工作 ID、部门 ID(从员工 WHERE manager_id = 外部.employee_id 中选择“x”);

  • D. 从员工中选择员工 ID、姓氏、职位 ID、部门 ID,其中员工 ID 为 WHERE 员工 ID IN(选择经理 ID,其中经理 ID 不为空);

    • A 和 D 在子查询中没有FROM子句。我猜这是无效的(或者只是问题中的拼写错误?)
    • 建议的答案是 C。但是我认为这行不通,因为保留关键字“outer”在这里用作别名。如果我错了,请纠正我。
    • 所以实际上这里只剩下B了。
    • 答案 D 顺序不正确。 (WHERE 应该在 HAVING 之前)
    • 答案 A 无效,因为子查询查询IS NULL

如果您对此问题/答案或我的任何言论有任何意见,我很高兴听到!

最佳答案

根据给定的信息,B 似乎是正确的,并进行了更正,即应该有 where 而不是任何having in 语句,但可以更好地告诉您是否上传数据库架构

关于mysql - 哪个 MySQL Select 查询是正确的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18298759/

相关文章:

mysql - 选择不同条件的 2 列

mysql - SHOW * FROM 列在 10 分钟内 - mysql 查询

mysql - 优化多对多关系的查询以搜索不相关的标签

sql - 在SQL中,如何选择一列的最小值并按其他列分组?

c++ - 是否可以使用 select(2) 来监视 SDL 文本输入事件?

android - AsyncTask,Insert,在 Android 中选择错误的执行顺序

mysql - 将复杂的 mysql SELECT 转换为 UPDATE

php - 如何在以前的 SQL 查询结果的 SQL 查询中传递 PHP 变量?

php - PDO 准备好的语句返回空集,查询工作正常

mysql - 在 HAVING 中引用 FROM 别名