0

だから私はこの質問に行き詰まっています:

DEPARTMENT_ID 、 DEPARTMENT_NAME 、 LAST_NAME 、 FIRST_NAME 列を含むすべての部門のリストをアルファベット順に取得するクエリを作成します。ここで、 last_name と first_name は部門のマネージャーの名前です。

これまでに書いた部門、従業員テーブルを使用した HR データベースがあります。

select department_id, department_name, e.last_name, e.first_name
from departments d, employees e
where e.department_id=d.department_id
and d.department_id=e.department_id
and d.manager_id=e.manager_id
having department_name = '%Manager%';

まだわかりません。ヒントがあれば助かります。

4

2 に答える 2

1

having 句は、group by に関連しています。group by がない場合、having 句には意味がありません。

マネージャーの従業員テーブルのレコードを取得するには、結合する必要があります。

select department_id, department_name, e.last_name, e.first_name
from departments d, employees e
where d.manager_id=e.id

新しい結合構文を使用することをお勧めします。

select dept.department_id, dept.department_name, emp.last_name, emp.first_name
from departments dept
  inner join employees emp on dept.manager_id = emp.id

employees.department_id フィールドが従業員が所属している部門であり、必要なのはその部門のマネージャーの従業員レコードです。部門のマネージャーの従業員レコードは、従業員テーブルの主キーへの外部キーとして表されます。

于 2013-03-10T21:01:55.173 に答える