由于以前日常开发,SQL写的少,没有深入玩过复杂查询,最近写报表的时候实实在在被虐了一遍, 遂记录一些小技巧
1、update set 时的执行先后顺序 参考文章
2、where和on的筛选 参考文章
总结:
sql执行一定要注意执行语句的先后顺序,字段顺序一换,结果天差地别
在update的时候,都是行操作更新,变量和本身字段的赋值顺序尤为关键。
where和on,在筛选的时候要注意我们的需求是否会带出空行,还是有行但是部分字段是NULL的数据,特别的这些数据还会去关联的时候,会漏数据或者带出空数据,导致结果不准。
我之后的习惯是都join一遍再where进行筛选(最普遍的方式),导致空行,实际其实有些join的表它本身就是没有数据的,而筛选的时候又指定了它,导致其他与该表之前关联的表数据丢失了。需求其实是在该表没有数据的时候值取0的(比如查价格表,并不是所有产品都价格)