助け合いフォーラム
トピック一覧に戻るトピック タイトル
問題ID: 8328 manager_id = (内側の問合せの結果)
フォーラム
最強WEB問題集Oracle Master 11g Bronze SQL基礎
投稿ユーザ(投稿日)
(2018/8/10)本文
<問題のsql>
SELECT employee_id, employee_name
FROM employees
WHERE department_id =
(SELECT department_id
FROM departments
WHERE manager_id =
(SELECT employee_id
FROM employees
WHERE salary =
(SELECT MAX(salary)
FROM employees)));
<解説>
SELECT department_id
FROM departments
WHERE manager_id = (内側の問合せの結果)
が実施されます。この問合せでは、マネージャー番号が一番給与額の多い従業員と一致する部署の部署番号を返します。もしも内側の問合せから複数件のデータが返された場合は、単一行演算子を使用しているため、エラーとなります。また、マネージャー番号が一番給与額の多い従業員と一致しない場合は、NULL値を返します。
とあります。
内側の問合せの結果はemployee_idの値を示しています。
すなわち、WHERE manager_id = employee_idとなり、おかしいのではないでしょうか?
レス一覧
トピック一覧に戻る
フォーラムTopへ
Copyright (c) 2010
Ping-t All rights reserved.