Oracle sql查询返回所有值,而不是限制值
这是一个家庭作业问题的一部分,但我已经尝试了6个不同的版本,我被卡住了。 每次查询运行时,我都在尝试查找1个管理器。例如,我输入部门id,然后弹出一个名称。目前,我多次得到了所有的名字。我尝试了一个带有“=”的嵌套,但没有嵌套、并集、交集等。我可以通过一个基本查询获取管理器id,但无法获取名称。当前版本如下所示:Oracle sql查询返回所有值,而不是限制值,oracle,Oracle,这是一个家庭作业问题的一部分,但我已经尝试了6个不同的版本,我被卡住了。 每次查询运行时,我都在尝试查找1个管理器。例如,我输入部门id,然后弹出一个名称。目前,我多次得到了所有的名字。我尝试了一个带有“=”的嵌套,但没有嵌套、并集、交集等。我可以通过一个基本查询获取管理器id,但无法获取名称。当前版本如下所示: select e.ename from .emp e where d.managerid in (select unique d.managerid
select e.ename
from .emp e
where d.managerid in (select unique d.managerid
from works w, .dept d, emp e1
where d.did=1 and e1.eid=w.eid and d.did=w.did );
我意识到这可能是我没有看到的一个基本错误——有什么想法吗?不清楚什么是你说的任何时候都可以得到一个动物园。应该是不同的动物园还是相同的动物园 否则,请抛出您的查询:
emp
where manager\u id中选择所有empoliesdep=1
的所有管理器。其余的表和条件对结果数据集没有影响did
是表dept
的主键,如果是这样,您的查询可能会被重写为
select e.ename
from emp e
where d.managerid in (select unique d.managerid
from dept d
where d.did=1);
但此查询返回给所有员工,而不是dept=1的经理
如果你需要一个经理。你应该找一位经理。如果eid
是employee的主键,而managerid
是employee表中的id
,则需要如下内容:
select e.ename
from emp e
where e1.eid in (select unique d.managerid
from dept d
where d.did=1);