You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选未包含Wipes商品的订单ID?

解决方法:筛选未包含Wipes商品的订单ID

你的原查询逻辑存在问题:WHERE ITEM <> 'WIPES'只会过滤掉单条商品为Wipes的记录,但如果某个订单同时包含Wipes和其他商品,其他商品的记录依然会被选中,DISTINCT后该订单ID还是会出现在结果里。要筛选完全没有Wipes商品的订单,可以用以下几种方法:

方法1:使用NOT EXISTS子查询

这是最直观且性能较好的方案之一,检查每个订单是否不存在Wipes商品:

SELECT DISTINCT ORDERID
FROM ORDERS o
WHERE NOT EXISTS (
    SELECT 1
    FROM ORDERS
    WHERE ORDERID = o.ORDERID
      AND ITEM = 'WIPES'
)

方法2:使用GROUP BY + HAVING子句

通过分组统计每个订单中Wipes的数量,筛选数量为0的订单:

SELECT ORDERID
FROM ORDERS
GROUP BY ORDERID
HAVING SUM(CASE WHEN ITEM = 'WIPES' THEN 1 ELSE 0 END) = 0

或者更简洁的写法(多数主流数据库支持):

SELECT ORDERID
FROM ORDERS
GROUP BY ORDERID
HAVING COUNT(CASE WHEN ITEM = 'WIPES' THEN 1 END) = 0

方法3:使用LEFT JOIN排除关联记录

通过左连接自身表,筛选出无法关联到Wipes商品的订单:

SELECT DISTINCT o.ORDERID
FROM ORDERS o
LEFT JOIN ORDERS w ON o.ORDERID = w.ORDERID AND w.ITEM = 'WIPES'
WHERE w.ORDERID IS NULL

以上三种方法都能准确筛选出未包含Wipes商品的订单ID(即你期望的00FF6248和1F210331)。

内容的提问来源于stack exchange,提问作者sergio089

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 06:47:07