SQL Server LEFT JOIN 过滤:WHERE 子句 vs ON 子句
在 SQL Server 中,可以使用 WHERE 子句或 ON 子句来过滤 LEFT JOIN 的结果。
使用 WHERE 子句过滤 LEFT JOIN:
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
WHERE table2.column1 = 'value'
在这个例子中,LEFT JOIN 返回 table1 和 table2 的所有行,但是 WHERE 子句只返回 table2 中 column1 等于 'value' 的行。
使用 ON 子句过滤 LEFT JOIN:
SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.id AND table2.column1 = 'value'
在这个例子中,LEFT JOIN 返回 table1 和 table2 的所有行,但是 ON 子句只返回 table2 中 column1 等于 'value' 的行。这种方法通常比使用 WHERE 子句更有效率,因为它在连接之前过滤数据。
原文地址: https://www.cveoy.top/t/topic/kUF9 著作权归作者所有。请勿转载和采集!