跳动探索网

左连接(LEFT JOIN)中的`ON`和`WHERE`区别🧐

导读 在SQL查询中,`LEFT JOIN ON`和`LEFT JOIN ON WHERE`看似相似,但它们的效果却大相径庭。简单来说,`ON`用于定义连接条件,而`WHERE`...

在SQL查询中,`LEFT JOIN ON`和`LEFT JOIN ON WHERE`看似相似,但它们的效果却大相径庭。简单来说,`ON`用于定义连接条件,而`WHERE`则用于过滤结果。👀

首先,`LEFT JOIN ON`会返回左表的所有记录,即使右表没有匹配项也会保留左表的数据。例如,`SELECT FROM A LEFT JOIN B ON A.id = B.a_id`会确保A表的所有数据都在结果中,即便B表中找不到匹配项。💚

然而,如果在`LEFT JOIN`后加上`WHERE`条件,比如`WHERE B.column IS NOT NULL`,这就相当于将左连接的结果再次过滤。这意味着最终结果可能只剩下有匹配项的记录,这实际上变成了一个内连接(INNER JOIN)。💔

总结来说,`ON`是连接的关键,`WHERE`则是筛选工具。合理使用两者能让SQL查询更加灵活高效。💡