Как найти соответствующее значение столбца, если значение существует в другом столбце той же таблицы - PullRequest
0 голосов
/ 19 января 2019

В столбце employee_name указаны все имена сотрудников с соответствующим employee_ID, а в столбце manager_ID указаны все employee_ID сотрудника их менеджеров

здесь я хочу получить всех сотрудников с их manger_names

ПРИМЕЧАНИЕ: менеджер также является сотрудником компании, поэтому manager_ID, employee_ID содержит одинаковые значения

См. Таблицу ниже

select * from  test1.employee;

Employee_id Employee_Name  Manager_ID
1124        Annapurna      1125 
1125        Jaseel         
1126        Shilpa         1125

select employee_Name, employee_Name as manager_Name from
employee   where Employee_id  in (select Manager_ID from employee ) ;

RESULT:
employee_Name manager_Name
Jaseel         Jaseel         

select * from  test1.employee;

select employee_Name, employee_Name as manager_Name from
 employee   where Employee_id  in (select Manager_ID from employee ) ;


employee_Name manager_Name
Annapurna     jaseel
Shilpa        Annapurna

1 Ответ

0 голосов
/ 19 января 2019

Предполагая, что вы хотите искать только на один уровень выше, как показано в ваших примерах данных, вы можете просто самостоятельно присоединиться к таблице, например:

SELECT 
    t1.Employee_Name,
    t2.Employee_Name Manager_Name
FROM
    test1.employee t1
    LEFT JOIN test1.employee t2 
        ON t2.Employee_id = t1.Manager_id

Nb: так как мы используем LEFT JOIN,если у сотрудника нет менеджера, он будет отображаться в наборе результатов с именем диспетчера как NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...