哪个MySQL Select查询是正确的

时间:2013-08-18 11:52:04

标签: mysql select having

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

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

因此,我在这里提出这个问题。

问题: 表Employees已创建。您希望检索至少有一个人向他们报告的员工的信息。您将执行以下哪些查询来完成任务?

  • 一个。 SELECT employee_id, last_name, job_id, department_id FROM Employees WHERE employee_id EXISTS(SELECT manager_id WHERE manager_id is NULL);

  • B中。 SELECT employee_id, last_name, job_id, department_id FROM Employees HAVING employee_id IN(SELECT manager_id FROM Employees WHERE manager_id is NOT NULL);

  • ℃。 SELECT employee_id, last_name, job_id, department_id FROM Employees outer WHERE EXISTS (SELECT 'x' FROM Employees WHERE manager_id = outer.employee_id);

  • d。 SELECT employee_id, last_name, job_id, department_id FROM Employees HAVING employee_id WHERE employee_id IN (SELECT manager_id WHERE manager_id is NOT NULL);

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

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

1 个答案:

答案 0 :(得分:0)

根据给定的信息,B似乎是正确的,有一个更正,应该有哪些,而不是任何有声明,但可以更好地告诉你是否上传数据库架构