JOINS和SUBQUERIES之间有什么区别?可以用JOIN做的事情是否也可以用SUBQUERIES完成,反之亦然?
JOINS和SUBQUERIES之间有什么区别?可以用JOIN做的事情是否也可以用SUBQUERIES完成,反之亦然?
此问题已有答案:
可能是重复的问题:
我们是否可以通过连接来做些什么,而用子查询则不能做,或者反之亦然?
admin 更改状态以发布 2023年5月21日
坦白地说,我无法想到一种情况,其中一个方法(子查询或连接)不能实现一件事情。对我来说,更多的是关于可读性和性能。例如,子查询可能会更慢,而连接可能会利用某些索引。至少从DBMS的角度来看,我想,分析表达式时应该更容易优化连接。考虑表示为子查询的多个连接的情况,例如。对于大多数人来说,以Left
,Right
或Inner
连接表示的语句会更容易理解和维护。我甚至避免使用隐式连接,因为它们隐藏了意图。换句话说,我更喜欢将连接表示为from table a inner join table b on a.id=b.id
,而不是from table a, table b where a.id=b.id
。在实现连接作为子查询时,可读性甚至更差,我的意见。