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

如何编写MySQL查询,基于状态筛选非活跃客户?

筛选非活跃客户的MySQL查询

首先明确逻辑:假设Mobile表中status为NULL代表手机号处于活跃状态,status为取消日期代表该手机号已停用。非活跃客户定义为没有任何活跃手机号的客户(包含无手机号,或所有手机号都已停用的客户)。

方法1:使用NOT EXISTS(性能更优)

SELECT c.customerid, c.name, c.address
FROM Customer c
WHERE NOT EXISTS (
    SELECT 1
    FROM Mobile m
    WHERE m.`customer id` = c.customerid
      AND m.status IS NULL
);

方法2:使用LEFT JOIN + 分组筛选

SELECT c.customerid, c.name, c.address
FROM Customer c
LEFT JOIN Mobile m ON c.customerid = m.`customer id`
GROUP BY c.customerid, c.name, c.address
HAVING COUNT(CASE WHEN m.status IS NULL THEN 1 END) = 0;

补充说明

  • Mobile表的customer id字段包含空格,SQL中必须用反引号`包裹,避免语法错误。
  • 如果你的非活跃定义不同(比如只要有一个手机号停用就判定为非活跃),可修改条件为:
SELECT c.customerid, c.name, c.address
FROM Customer c
WHERE EXISTS (
    SELECT 1
    FROM Mobile m
    WHERE m.`customer id` = c.customerid
      AND m.status IS NOT NULL
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 15:36:34