我有两张桌子
@T1 TABLE
(
Id INT,
Date DATETIME
)
@T2 TABLE
(
Id INT,
Date DATETIME
)
Run Code Online (Sandbox Code Playgroud)
这些表在 (Id, Date) 上有一个非聚集索引
我加入这些表
SELECT *
FROM T1 AS t1
INNER JOIN T2 AS t2
ON
t1.Id = t2.Id
WHERE
t1.Date <= GETDATE()
AND
t2.Date <= GETDATE()
Run Code Online (Sandbox Code Playgroud)
这也可以写成
SELECT *
FROM T1 AS t1
INNER JOIN T2 AS t2
ON
t1.Id = t2.Id
AND
t1.Date <= GETDATE()
AND
t2.Date <= GETDATE()
Run Code Online (Sandbox Code Playgroud)
我的问题是,这两个查询中哪一个提供了更好的性能,为什么?或者他们是平等的?
我在 MSSQL 课上教过,这是如何连接两个表
Run Code Online (Sandbox Code Playgroud)select * from FirstTable A JOIN SecondTable B on A.ID= B.ID
现在在我的职业生涯中,我遇到过这样的 JOIN 查询
Run Code Online (Sandbox Code Playgroud)select * from FirstTable A, SecondTable B where A.ID=B.ID
我知道第二种选择曾经是常态,但现在可能已经放弃了。
我发现在我加入 6+ 个表 + 有多个子查询的复杂查询中,第二种形式更容易理解,而且简短漂亮。
问题