【发布时间】:2012-05-18 00:50:55
【问题描述】:
我对使用ON 和WHERE 过滤联接的理解是否正确?
WHERE
...将过滤连接表的结果,这意味着 LEFT JOIN 或 RIGHT JOIN 不会显示预期表中的所有记录,因为即使 WHERE 过滤器可能打开,它们也会被过滤掉另一个表中的字段。
ON
...可以用作正在连接的表的过滤器。我曾经认为ON 仅用于在加入两个表时比较它们之间的字段,但它也可以作为一个孤立的WHERE 用于正在加入的特定表。
当您只连接两个表时,这一切都不重要,但我开始意识到,在跨 3 个以上的表进行非常大的连接时,了解差异至关重要。
【问题讨论】:
-
ON用于加入条件,它只会过滤INNER JOIN的结果 -
您的问题真的是关于两者之间的区别吗?目前您似乎在问两个问题,
WHERE做什么,和ON做什么? -
检查这个问题它有一个很好的答案stackoverflow.com/questions/1401889/…
标签: sql sql-server-2008 join where