两个表之间多对多 如何查询?

fred_dada 2008-11-05 03:15:54
入库明细表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

最后请问如果有那个第一个语句怎么改?
...全文
146 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
WWWWA 2008-11-05
  • 打赏
  • 举报
回复
每个表先分组再连接试试

57,065

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧