时间:2021-07-01 10:21:17 帮助过:3人阅读
字段:id,goods_id,....
第二个表是订单-商品表(order):
字段:id,goods_id,order_id,....
第三个表是订单详情表(order_info):
字段:id,order_id,pay_time,...
产品表 和 订单-商品表 是一对多的关系
订单-商品表 和 订单详情表 是一对一的关系
订单-商品表没有订单完成的状态,但是可以根据 订单详情表 的pay_time(支付时间)判断是否完成订单
现在要实现的是根据提供的时间检测出产品表,上架后时间之内不动销的产品?
补充:现在已经完成goods表关联order表查询获得没有订单的产品ID了,但是需要关联第三个表,还需要加上时间筛选,感觉之前的办法很难实现。
有三个表 第一个表是产品表(goods):
字段:id,goods_id,....
第二个表是订单-商品表(order):
字段:id,goods_id,order_id,....
第三个表是订单详情表(order_info):
字段:id,order_id,pay_time,...
产品表 和 订单-商品表 是一对多的关系
订单-商品表 和 订单详情表 是一对一的关系
订单-商品表没有订单完成的状态,但是可以根据 订单详情表 的pay_time(支付时间)判断是否完成订单
现在要实现的是根据提供的时间检测出产品表,上架后时间之内不动销的产品?
补充:现在已经完成goods表关联order表查询获得没有订单的产品ID了,但是需要关联第三个表,还需要加上时间筛选,感觉之前的办法很难实现。
分析一下问题,个人窃以为难以实现的关键:
综上几点,个人觉得题主应该在订单表(order),增加状态列(status)信息,这样的话就很好统计了。例如status=1表示订单完成,则SQL如下:
1. 交易订单少于指定笔数为不动销
select goods_id from (
select goods_id, count(1) as num
from order
where status = 1
group by goods_id) t
where t.num < 10;
2. 无交易订单为不动销
select goods_id
from goods g
where g.goods_id not in (
select distinct goods_id
from order t
where t.status = 1)