[英]sub query and inner join in SQL
我写了2个查询,其中一个是子查询
SELECT DISTINCT pp.employeeid
FROM payment pp JOIN Employee e
ON e.employeeid = pp.employeeid WHERE pp.employeeid IN
(SELECT employeeid
FROM employee
WHERE branchid IN
(SELECT branchid
FROM branch
WHERE code IN
(SELECT code
FROM bank p
WHERE code = 15)));
GO
另一个是内部联接查询
select DISTINCT pp.employeeid from payment pp inner join employee e
on e.employeeid=pp.employeeid
inner join branch b on b.branchid=e.branchid
inner join bank br on br.code=b.code
where br.code=15
在这里,两个查询都返回相同的数据,我想问哪个更合适? 以及首选使用哪一种。
加入VS子查询:
您可以用来查询来自不同表的数据,并且可能共享相同的结果,但是两者之间存在许多差异。 了解差异以及何时使用联接或子查询来获取数据将是您的成功。 =)
联接:用于根据两个或多个表之间的相关列来组合它们。 资源
子查询:也称为内部查询或内部选择,而包含子查询的语句也称为外部查询或外部选择。 资源
我更喜欢Joins进行这种操作,甚至更容易阅读:
select DISTINCT pp.employeeid
from payment pp inner join employee e on e.employeeid=pp.employeeid
inner join branch b on b.branchid=e.branchid
inner join bank br on br.code=b.code
where br.code=15
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.