gpt4 book ai didi

mysql - SQL 查询中的 JOIN 运算符未返回预期结果

转载 作者:行者123 更新时间:2023-11-29 09:53:47 26 4
gpt4 key购买 nike

我想使用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

我期望结果 vishal 这里是代码:

select e_name 
from emp natural join dep
where dep.manager_id=emp.e_id and emp.e_name='sumit';

最佳答案

您需要将 emp 加入 dep 并再次返回 emp:

select e.e_name 
from emp join dep
on dep.d_id = emp.d_id
inner join emp e
on e.e_id = dep.manager_id
where emp.e_name='sumit';

请参阅demo

关于mysql - SQL 查询中的 JOIN 运算符未返回预期结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54278786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com