我应该将过滤器放在 TSQL 查询的什么位置?
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID AND B.STATUS = 1
Run Code Online (Sandbox Code Playgroud)
或者
SELECT a.colum FROM A
JOIN B ON A.ID = B.ID
WHERE B.STATUS = 1
Run Code Online (Sandbox Code Playgroud)
我正在寻找性能问题或良好做法。
笔记:
这对于 OUTER JOIN 会发生变化,因为您会将其更改为内部联接
快捷方式:
SELECT a.colum
FROM
A
LEFT JOIN
B ON A.ID = B.ID AND B.STATUS = 1
WHERE
a.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)
使用单独的过滤器:
SELECT a.colum
FROM
A
LEFT JOIN
(SELECT * FROM B WHERE STATUS = 1) B ON A.ID = B.ID
WHERE
a.foo = 'bar'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |