考虑加入A LEFT JOIN B ON A.id = B.a_id
:
B.a_id
可以为空——大多数但不是所有B
记录都指向一条A
记录。A
最多只能有一个匹配记录B
(业务逻辑)。- 并非所有
A
记录在B
.
有没有办法告诉 MSSQL永远不会有超过一个 A:B 匹配项,从而允许它在为给定A
记录找到匹配项后快捷连接?
我认为如果B.a_id
有一个唯一索引,这种优化可能会发生,但这是不可能的,因为它可以为空。
使问题复杂化:A 和 B 在不同的数据库中(同一个 MSSQL 实例)。
如果重要的话,我使用的是 SQL Server 2008 R2。
来自@ypercube对问题的评论的 Wiki 回答:
您可以使用过滤索引:
请参阅过滤索引设计指南