請注意,我有不同的問題類似的主題,哪個MySQL選擇查詢是正確的
我正在學習MySQL
。我遇到了一些選擇題。 如果我懷疑答案是什麼或者不確定是否正確,我開始搜索谷歌,stackoverflow和mysql站點。 但是對於一些人來說,我仍然無法確定正確答案是什麼。
因此我在這裏問這個問題。
問題: 表Employees
已創建。您想要檢索至少有一個人向其報告的員工的信息。您將執行以下哪項查詢來完成此任務?
A.
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);
C.
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.但我相信這是行不通的,因爲保留關鍵字「外部」用作別名在這裏。如果我錯了,請糾正我。
- 所以實際上只剩下B了。
- 答案D順序不正確。 (
WHERE
應在HAVING
之前) - 答案A無效,因爲
subquery
查詢IS NULL
。
- A和d不具有
如果你有關於這個問題/答案或我的任何言論發表任何言論,我很高興聽到它!
在C,'outer.employee_id'等於' Employees.employee_id'順便說一句。雖然,這不是爲了做作業或測試嗎? :P(B) – KarelG
我正在準備認證,並在互聯網上發現了一些示例問題。請注意,OUTER是一個保留關鍵字。所以我會認爲這是行不通的。或者我錯了? – th3penguinwhisperer
當我在測試表上嘗試C時,我得到:從外部WHERE存在的SELECT id(SELECT'x'FROM emp WHERE mid = outer.id); 錯誤1064(42000):您的SQL語法錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的外部WHERE存在(SELECT'x'FROM emp WHERE mid = outer.id)'附近使用正確的語法 – th3penguinwhisperer