SQL中使用JOIN时,过滤条件放在on和where中的区别

SQL语法中,最常用的几个join:
类型含义Inner Join输出符合关联条件的数据Left Join输出左表的所有记录,对于右表符合关联的数据,输出右表,没有符合的,右表补nullRight Join输出右表的所有记录,对于左表符合关联的数据,输出左表,没有符合的,左表补nullFull Join输出左表和右表的所有记录,对于没有关联上的数据,未关联的另一侧补null
根据不同的场景,可以使用不同的Join类型来实现对应的关联操作。而对关联前后表的过滤有几种方式:
子查询的WHERE条件JOIN ON条件JOIN ON后的WHERE条件
而针对不同的Join类型,几种方式有很大区别,使用不正确,不仅无法将过滤条件下推,导致全表扫描,而且会导致正确性问题。这里主要记录一下几种过滤条件的区别。
首先先明确一下JOIN和WHERE条件的计算顺序,对于
(SELECT * FROM t1 WHERE {subquery_where_condition}) a
JOIN
(SELECT * FROM t2 WHERE {subquery_

SQL中使用JOIN时,过滤条件放在on和where中的区别最先出现在Python成神之路

版权声明:
作者:感冒的梵高
链接:https://www.techfm.club/p/21926.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>