[英]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.