总结:优化--保留表条件写到 where后,非保留表条件写到 on后;
SQL题:
A表
clt_id | clt_nam |
1001 | A |
1002 | B |
1002 | B |
1003 | C |
1003 | C |
1006 | F |
B表
clt_id | clt_nam |
1001 | 1 |
1002 | 2 |
1003 | 3 |
1003 | 3 |
1003 | 3 |
1004 | 4 |
1005 | 5 |
1.ininer join 后面不论是否开启cbo,where 都可以,on不可以
2. left Join做差集A-B,where 后面接 非保留表 is null 做谓词下推没意义(开启cbo)
3.left Join 的on中对于非保留表可以谓词下推
4. 对于 left join的时候,如果where 后面接非保留表条件(cbo开启,可谓词下推),会将条件谓词下推到map端,同时将 left join 变为 inner join;
5.保留表在 on字段后面不起作用,where 后面 非保留表 is null 进行做差集