SQL Server中INNER联接和笛卡尔联接的区别



可能重复:
内部联接&完全加入

这两者之间有什么区别,尤其是在SQLServer2008-中

select * from table1 t1, table2 t2 where t1.col1 = t2.col1

select * from table1 t1 INNER JOIN table2 t2 ON t1.col1 = t2.col1

它们是相同的。

但是,如果您想对不同的表执行INNER JOINOUTER JOIN,请考虑您的语法会是什么样子。

遵循INNER JOIN语法更为一致,这样,如果以后需要修改SQL,就更容易做到。此外,一致性还可以让其他人更好地了解您的意图。

第一种是编写内部联接的旧方法,第二种是在join命令添加到SQL之后编写的方法。

只要两种方式都被接受,结果就没有任何区别。两个查询的执行计划将完全相同。

编写联接的旧方法正在逐步淘汰,并且在SQL Server的后续版本中,在某些模式下可能会被禁止。它不在SQL Server 2008中。

最新更新