詹惠儿

2021-04-07   阅读量: 18

数据分析师

SQL连接中的on and和on where两种写法的作用一样吗?

问:

SQL连接中的on and和on where两种写法的作用一样吗?

答:

在使用left join时,on和where条件的区别如下:

1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。(实际上左连接中如果and语句是对左表进行过滤的,那么不管真假都不起任何作用。如果是对右表过滤的,那么左表所有记录都返回,右表筛选以后再与左表连接返回)

2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉,on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进行过滤。

在使用inner join时,不管是对左表还是右表进行筛选,on and和on where都会对生成的临时表进行过滤。

原文链接:https://blog.csdn.net/zengcong2013/article/details/46413737


240.0000 1 0 关注作者 收藏

评论(0)


暂无数据

推荐课程

推荐帖子