【发布时间】:2011-05-18 19:22:51
【问题描述】:
这是征求意见的理论/最佳实践请求。
我已经习惯于将 WHERE 子句和 JOIN 条件视为“托管”任何业务逻辑的好地方,这将使我的查询尽可能精确。
但我注意到,将不相关的业务逻辑添加为 JOIN 条件可能违反“最佳实践”。例如:
SELECT a.Id, b.Id
FROM foo AS a
LEFT OUTER JOIN bar AS b ON a.Id = b.Id
AND GETDATE() >= "18/5/2011"
这个例子有点幼稚:在现实生活中,调用者确实需要附加条件,而没有它实际上会产生不真实的结果(调用者必须在代码中过滤)。
请注意,对于 OUTER 连接,当逻辑要求它时,不能将条件放在 WHERE 子句中。
【问题讨论】:
标签: sql outer-join