Oracle里面的外连中where和on之后and有啥区别
1、表做关联的时候有些条件写在where中,有些写在on之后关联条件的and中。那么有什么区别呢。
创新互联公司2013年至今,是专业互联网技术服务公司,拥有项目网站制作、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元宝清做网站,已为上家服务,为宝清各地企业和个人服务,联系电话:13518219792
2、我们指导,表关联一般分为两种:内联和外联。
3、我们先来看内联。
4、准备两个表做连接。表A:test_tb_stid;表B:test_tb_stscore;
5、表A数据如下图:
6、表B数据如下图:
7、用红色字段stid作为关联条件
8、内联,先把过滤条件放在and后:
select a.*,b.* from test_tb_stid a inner join test_tb_stscore b on a.stid = b.stid and a.stid = 2
9、结果,发现只出现一条:
10、把过滤条件放到where
11、发现内联的时候,这个过滤条件放on之后的and和where没有区别。
12、我们再看一下外联。
发现虽然加了过滤条件,但是a表还是全量的。如果不加这个a.stid=1,应该会匹配出两条出来,如下图:
说明外联的话:1、主表总是全量的。2、on之后的and条件只对结果内容产生影响,不对结果量产生影响。
13、过滤条件加到where上
直接就是对结果集产生影响了。
网站栏目:Oracle里面的外连中where和on之后and有啥区别
网页URL:http://scyanting.com/article/pcspii.html