Я хочу использовать оператор JOIN
, чтобы получить результат, вот мой код:
create table emp(E_id integer, e_name varchar(100), d_ID integer , primary key(e_id));
create table dep (d_ID integer, d_name varchar(100), manager_id integer ,primary key(d_ID) , FOREIGN KEY (manager_id) REFERENCES emp(E_id));
alter table emp add FOREIGN KEY(d_ID) references dep(d_ID);
insert into dep values(11,'computer',1);
insert into dep values(12,'commerce',2);
insert into dep values(13,'technology',3);
insert into emp values(1,'vishal',11) ;
insert into emp values(2,'sachin',12) ;
insert into emp values(3,'deepal',13) ;
insert into emp values(4,'sumit',11) ;
insert into emp values(5,'vinay',11) ;
insert into emp values(6,'ravish',14) ;
Я хочу найти менеджера по поиску конкретного сотрудника с такими операторами соединения, как менеджер по vinay, результат должен быть vishal
Я использовал вложенный запрос:
select e_name
from emp
where e_id in (select manager_id
from dep
where dep.d_id in(select d_ID
from emp
where emp.e_name ='sumit'));
Я получаю правильный результат, но когда я использую оператор JOIN
, он не работает, он показывает мне результат
vishal
sachin
deepal
я ожидаю результата вот код:
select e_name
from emp natural join dep
where dep.manager_id=emp.e_id and emp.e_name='sumit';