需求: 现有三张表, oa_fund_plan(简称a)、oa_fund_plan_in(简称b)、oa_fund_plan_out(简称c)
a为主表, 通过requestid与b和c相关联,其中b和c之间的数据没有任何对应关系,但是有一个列名同为amount的列.
刚开始,我只是通过简单的requestid将a与bc相关联
sql如下
SELECT distinct(
oa_fund_plan.depmentname) ,
oa_fund_plan.operatorname ,
oa_fund_plan_in.amount ain,
oa_fund_plan_out.amount aout,
oa_fund_plan_in.colltype ,
oa_fund_plan_out.paytype ,
oa_fund_plan.billdate
FROM
oa_fund_plan ,
oa_fund_plan_in ,
oa_fund_plan_out
WHERE
and oa_fund_plan.requestid = oa_fund_plan_in.requestid
and oa_fund_plan.requestid = oa_fund_plan_out.requestid
我没发现任何问题,但是我们组长发现数据合计的结果不对,本来查出来的结果应该是b表的两条加上c表的三条. 但是经过我的查询,结果变成了b表的两条乘以c表的三条,就是说原本应该只有2+3条结果,但是变成了2*3条结果.
于是我考虑了left join甚至用上了group by这些对我来说很难理解的语句
结