sql – 带有exists子句的JOIN或Correlated子查询,哪一个更好
发布时间:2020-12-12 08:52:37 所属栏目:MsSql教程 来源:网络整理
导读:select * from ContactInformation c where exists (select * from Department d where d.Id = c.DepartmentId )select * from ContactInformation c inner join Department d on c.DepartmentId = d.Id 两个查询都给出相同的输出,这在性能明智的连接或与exi
select * from ContactInformation c where exists (select * from Department d where d.Id = c.DepartmentId ) select * from ContactInformation c inner join Department d on c.DepartmentId = d.Id 两个查询都给出相同的输出,这在性能明智的连接或与exists子句的相关子查询中是好的,哪一个更好. 编辑: – 有连接的alternet方式,以提高性能: – 解决方法通常,EXISTS子句因为您可能需要DISTINCT来为JOIN提供预期输出.例如,如果ContactInformation行有多个Department行.在上面的示例中,SELECT *: >也意味着不同的输出,所以它们实际上并不等同 这么说,即使列表列表有限,他们也会给出相同的计划:直到你需要DISTINCT …这就是为什么我说“EXISTS” (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – RODBC odbcDriverConnect()连接错误
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SH
- SQL Server误区30日谈 第21天 数据损坏可以通过重启SQL Ser
- 如何在SQL中删除重复记录
- SQLServer2005移植到Oracle10g经验总结(reprint)
- 在Docker中使用MySQL的教程
- sql – 给出信件,获取字母表中的下一个字母
- haskell – bind可以由fmap和join组成,所以我们必须使用mon
- mysql性能优化工具--tuner-primer使用介绍
- sql-server – 为什么我需要两个SQL Server Service Broker