select e.Name, m.Name as 'Manager Id'
FROM Employee e
left outer join Employee m on e.ManagerId = m.EmployeeId
このコードでは、左外部結合を使用して目的の出力を取得しました。以下のコードも上記と同じ出力を示しています。
select e.Name, (Select m.name from Employee m where m.EmployeeId = e.ManagerId) as 'Manager Name'
From Employee e
これらのコードの同じ出力を得るための他の可能なコードがあるかどうか知りたいですか? ちなみに、私のテーブルは、EmployeeId、Name、ManagerId の 3 つの列で構成されています。
EmpId | Name | ManagerId
1 |Charlie | 2
2 |Mike | 3
3 |Jayr |
4 |Ivan | 3
5 |Franz | 3
6 |Alexis | 2
managerID は EmpID でもあります。チャーリーの場合と同様に、チャーリーのマネージャーはマイクです。これは、empID が 2 で、チャーリーのマネージャー ID が 2 であるためです。他でも同じです。以下は、上記のコードの出力です。
EmployeeName | ManagerName
Charlie | Mike
Mike | Jayr
Jayr | NULL
Ivan | Jayr
Franz | Jayr
Alexis | Mike