在业务层组建一个显示集合,需要多次查询数据库,多次交互. 之后被告知去写存储过程.存储过程没有集合这一说,循环控制需要用游标,不怎么会用.最后用with关键字,把每个相关表内的相关数据都取出来或sum出来,最后用共有id, left join在一起select一下,就拼接成了想要的结果集.
这里如果直接left join 所有的表,会出现错误的重复数据,sum统计会被影响.毕竟业务有时需要从四五个表中取数据.
优化的话就是小表放前,大表放后.多次对一个表访问,可以先把需要访问的所有数据都先with etc出来,每次去etc中访问.这里最终left join之前,每个id在每个被join的with表里都只对应一条数据.