Sql server 多个表上的内部join语句与select语句

Sql server 多个表上的内部join语句与select语句,sql-server,Sql Server,下面两个查询执行相同的操作,但是想知道哪一个是最快和最好的 NUM是表1和表2上的主键 select * from table1 tb1, table2 tb2 where tb1.num = tb2.num select * from table1 tb1 inner join table2 tb2 on tb1.num = tb2.num 这两条SQL语句是等价的。您可以查看执行计划进行确认。通常,给定两条以相同方式影响/返回相同行的SQL语句,服务器可以以相同方式自由执行它们。这

下面两个查询执行相同的操作,但是想知道哪一个是最快和最好的

NUM是表1和表2上的主键

select * 
from table1 tb1,
table2 tb2
where tb1.num = tb2.num


select * 
from table1 tb1
inner join
table2 tb2
on tb1.num = tb2.num

这两条SQL语句是等价的。您可以查看执行计划进行确认。通常,给定两条以相同方式影响/返回相同行的SQL语句,服务器可以以相同方式自由执行它们。

这两条SQL语句是等效的。您可以查看执行计划进行确认。通常,给定两条SQL语句,它们以相同的方式影响/返回相同的行,服务器可以以相同的方式自由执行它们。

它们是等效的查询-两者都是内部联接,但第一条语句使用的是旧的隐式联接语法。您的数据库应该以完全相同的方式执行它们


如果您不确定,可以始终使用SQL Management Studio进行查询。

它们是等效的查询-两者都是内部联接,但第一个使用较旧的隐式联接语法。您的数据库应该以完全相同的方式执行它们


如果您不确定,可以随时使用SQL Management Studio来进行连接。

第一个示例是我所看到的Oracle连接。如前所述,性能差异似乎很小。从可读性的角度来看,我更喜欢第二个示例,因为它将连接条件与筛选条件分开。

第一个示例是我所看到的Oracle连接。如前所述,性能差异似乎很小。从可读性的角度来看,我更喜欢第二个示例,因为它将连接条件与筛选条件分开。

它们是相同的查询。第一种是较旧的替代语法,但它们都表示进行内部联接


您应该避免使用较旧的语法。这不仅仅是可读性,而且当您构建更复杂的查询时,有一些事情是旧语法无法做到的。此外,旧语法正在经历一个缓慢的淘汰过程,在大多数产品中,等效的外部连接语法被标记为已弃用,而iirc已在至少一个产品中被删除。

它们是相同的查询。第一种是较旧的替代语法,但它们都表示进行内部联接


您应该避免使用较旧的语法。这不仅仅是可读性,而且当您构建更复杂的查询时,有一些事情是旧语法无法做到的。此外,旧语法正在经历一个缓慢的淘汰过程,在大多数产品中,等效的外部连接语法标记为不推荐使用,和iirc已至少删除一个。

出于可读性原因而不是性能原因,最好使用内部联接语法。出于可读性原因而不是性能原因,最好使用内部联接语法。的可能重复