大佬,请帮忙看下我的思路错在哪里, 根据题目的条件,我们需要过滤出的订单信息要满足 1.日期在2025-10-15以后 2.同一个用户下单2个以及2个以上 3.订单状态为成功 4.课程为C++,JAVA,PYTHON之一 根据这四个条件写出过滤语句结果如下: select * from order_info where user_id in (select user_id from order_info group by user_id having count(*)>=2 )------筛选下单两次及以上的用户的订单 and status='completed'----筛选订单状态为成功的订单 and product_name in('C++','Python','Java')----筛选课程为这三门之一的订单 and date>='2025-10-15'----筛选下单日期为2025-10-15之后的订单 order by id; 该答案执行报错,输出结果和答案不符,对比正确答案: select * from order_info where user_id in (select user_id from order_info where status='completed' and product_name in('C++','Python','Java') and date>='2025-10-15' group by user_id having count(*)>=2 ) and status='completed' and product_name in('C++','Python','Java') and date>='2025-10-15' order by id; 问题出在筛选条件1,正确答案在筛选条件1:下单2单以上的用户时所用的子查询里是 ①筛选成功下单2单以上,且符合产品筛选条件和日期筛选条件的用户后,再加上②筛选产品③筛选日期。 可是我感觉我的思路好像也没问题呀,①筛选下了两单以上的用户,②筛选成功的订单,③筛选产品,④筛选日期,这几个筛选条件的交集应该符合题目需求才对。为啥会输出错误呢?
点赞

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
牛客网
牛客企业服务