请教一个MYSQL数据查询问题

Geomen 发布于 2017/08/04 15:07
阅读 136
收藏 0

华为云11月刊推送:DIY微信问答机器人,高性能计算代码的20个技巧!>>>

先说明下情况

我有一张商品表store_goods和一张盘点单据表store_check_stock_goods

盘点表的存储方式是,一个商品信息存两行,一行是添加时的库存,一行是盘点数,通过type区分,type=0是添加时库存,type=1是盘点数

数据表:

id bill_id(单据ID) goods_id stock type
1 1 1 10(添加时库存) 0
2 1 1 8(盘点数) 1

现在我要获取单据列表了,并且按有无库存差异获取,就是他store_check_stock_goods里type=1里的stock去跟商品表的stock比较后获取

我查询的语句 是这样的:

select `id`,
       `bill_id`,
       `goods_id`,
       `stock`,
       `type`
  from `store_check_stock_goods`
 where `bill_id`= 1
   and exists(
select 1
  from `store_goods`
 where store_goods.id= store_check_stock_goods.goods_id
   and store_check_stock_goods.type= 1
   and store_check_stock_goods.stock<> store_goods.stock)
 order by `goods_id` desc,
         `id` desc
 limit 20 offset 0;

返回的结果是,如果有数据时只返回type=1的数据,我的需求是type=0的也要返回,就是说:只要这个商品符合要求就要把两条数据都返回 !请问要怎么改呢?

加载中
0
withzz
withzz

其实...为什么不做一行数据 两个列呢?一个库存数,一个盘点数,然后直接比较这两个列就可以了

返回顶部
顶部