两个表之间多对多 如何查询?
入库明细表instockex
出库明细表outstockex
物品信息表goods
现在要查询物品的库存。
因为没有库存表只能用sum(入库明细表)-sum(出库明细表)=库存
但是因为两个表都是明晰的,所有物品ID是多对多
select c.id,c.code,c.name,c.gg,sum(a.sl)-sum(b.sl) as kc,c.bx,c.jc,c.jldw,c.dj,c.zlbz,c.jgcz
FROM goods AS c
left Join instockex AS a ON a.wpid = c.id
left Join outstockex AS b ON b.wpid = c.id
where c.isleaf=1 and c.id!=1 and c.name like '%%'
group by c.id
小弟这样写的话会出现重复数据
最后虽然完成了,但是采用的时嵌套的查询语句
select c.id,c.code,c.name,c.gg,(a.kc-b.kc) as kc,c.bx,c.jc,c.jldw,c.dj,c.zlbz,c.jgcz
FROM goods AS c
inner Join (select wpid ,sum(sl) kc from instockex group by wpid) a on a.wpid=c.id
inner Join (select wpid ,sum(sl) kc from outstockex group by wpid) b on b.wpid=c.id
where c.isleaf=1 and c.id!=1 and c.name like '%%'
group by c.id
最后请问如果有那个第一个语句怎么改?