繁体   English   中英

SQl查询同一表中不同条件的多个选择语句

[英]SQl query Multiple select statments in the same table under different conditions

因此,我要对3个表执行一些查询,但是在此过程中,我最终返回到已经对其执行一些功能的表。

我首先从一个从属表中获取essn,并在雇员表中搜索与之匹配的ssn,然后得到superssn并与另一表中的mgrssn进行比较。 最后一步是返回到employee表中,并找到具有相同名称的mgrssn的人的姓名。

这里的问题是,一旦我得到匹配的superssn,我就无法访问其他行。

select lname, fname from
(select mgrssn from department) as d,
(select superssn, lname,fname,ssn from
    (select essn from dependent where dependent_name ='joy') as de,
    (select ssn,lname,fname,superssn from employee) as e
where essn =ssn) as s
where s.ssn = mgrssn

我应该考虑进行联接吗?

您不需要子查询。 您的查询有点难以遵循(您没有所有列的表别名),但是我认为这是您想要做的事情:

select lname, fname
from department d join
     employee e
     on e.ssn = d.mgrssn join
     dependent dep
     on dep.essn = e.ssn
where dep.dependent_name ='joy';

简单规则:请勿在from子句中使用逗号。 始终使用显式join语法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM