問題ID: 8328 manager_id = (内側の問合せの結果)

この質問の投稿一覧へ

質問 問題ID: 8328 manager_id = (内側の問合せの結果)

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2018-8-10 16:41
hasimohi  常連   投稿数: 14
<問題の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となり、おかしいのではないでしょうか?

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.