我想知道
的性能差异select * from A,B,C where A.x = B.y and B.y = C.z
和
select * from A INNER JOIN B on A.x = B.y INNER JOIN C on B.y = C.z
基本上我想知道内连接是否比笛卡尔产品表现更好? 内部连接是内部进行的笛卡尔积?
答案 0 :(得分:2)
所有这两个操作中的第一个用于两个不同的目的,而Cartesian Product通过将每个行从一个表连接到另一个表中的每一行来提供结果。而内连接(有时称为简单连接)是一个
连接两个或多个表,只返回满足连接条件的那些行。
现在来到你所写的内容:
在笛卡儿积的情况下首先创建一个由A,B,C组成的表,然后在给出条件的基础上得到结果。但正如你所看到的那样,这是一个繁重的过程
另一方面,内部联接只选择那些真正满足给定条件的结果。这是实现最终结果的更好的解决方案。
第一个是滥用SQL语言。