Я хочу показать некоторые данные из базы данных. Идентификатор начальника находится в той же строке, что и сотрудник. Я хочу отобразить имя босса. eId - это идентификатор сотрудника, а bossId - это идентификатор его босса. recepId - это идентификатор администратора этого отдела.
Я хочу показать название отдела, описание, идентификатор администратора, имя администратора, идентификатор начальника и его имя.
Я могу отобразить все, кроме имени босса. Как управлять этим внутри моего запроса?
Таблица сотрудников:
| eId | name |city |bossId | depNr |
|:-------------|------------:|:------------:|--------------------
| 345 | Frits | Canvas | 240 | 60|
| 240 | Steven | Canvas | 200 | 90|
| 265 | John | Kentucky | 40 | 60|
| 40 | Kreuger | Kentucky | | 90|
Стол отдела:
| depCode | depName |locId |recepId|
|:-------------|------------: |:-----------|----------
| 60 | Finance | CAN | 345 |
| 90 | Research | CAN | 265 |
Таблица расположений:
| code | description |country |
|:-------------|------------: |:-----------|
| CAN | Finance | USA |
| CAN | Research | USA |
| KEN | Economics | USA |
Что я хочу:
| depName | description |recepId |name | bossID| bossName|
|:-------------|------------:|:------------:|----------------------------
| 345 | COD12 | Canvas | Frits | 240 | Steven
| 140 | COD40 | Canvas | John | 800 | Kreuger
Мой запрос:
SELECT department.depName, Location.description, department.recepId, employee.name, employee.bossId
FROM department
INNER JOIN Location
ON Location.code = department.locId
Left JOIN employee
ON department.recepId = employee.eId
Это показывает:
| depName | description |recepId |name | bossID|
|:-------------|------------:|:------------:|-------------------
| 345 | COD12 | Canvas | Frits | 240 |
| 140 | COD40 | Canvas | John | 800 |