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

求SQL查询语句:筛选未下单注册用户与多次下单用户

解决方法

你的原SQL存在几个问题:

  • SELECT语句末尾多了逗号,属于语法错误
  • ON条件里的customer.id是无效字段,应该关联Users.user_id和Orders.customer_id
  • 使用内连接(JOIN)会自动排除没有订单的用户,无法覆盖你需要的第一类用户

下面提供两种可行的查询方案:

方案一:用UNION合并两类用户结果

-- 已注册但未下单的用户
SELECT u.user_id
FROM Users u
LEFT JOIN Orders o ON u.user_id = o.customer_id
WHERE o.customer_id IS NULL

UNION

-- 下单次数超过1次的用户
SELECT o.customer_id AS user_id
FROM Orders o
GROUP BY o.customer_id
HAVING COUNT(o.orders_id) > 1;

方案二:通过聚合函数一次性筛选

SELECT u.user_id
FROM Users u
LEFT JOIN Orders o ON u.user_id = o.customer_id
GROUP BY u.user_id
HAVING COUNT(o.orders_id) = 0 OR COUNT(o.orders_id) > 1;

说明

  • 方案一用UNION分别查询两类用户再合并,逻辑清晰,适合需要分别查看两类数据的场景
  • 方案二通过LEFT JOIN关联用户和订单,分组后用HAVING条件筛选订单数为0(未下单)或大于1(多次下单)的用户,效率更高,适合一次性获取所有目标用户

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 19:55:48