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

SQL如何筛选不存在指定元素的用户:查询未持有Iphone的人员姓名

可行实现方案

假设你的表名为 user_items,可选用以下任意一种方法实现需求:

方法1:NOT IN 子查询(逻辑最易理解)

先查询所有持有Iphone的人员名单,再筛选不在该名单内的人员即可:

SELECT DISTINCT Name
FROM user_items
WHERE Name NOT IN (
    SELECT Name 
    FROM user_items 
    WHERE Items = 'Iphone'
);

方法2:分组聚合判断(性能更优,适合大数据量场景)

按人员姓名分组,通过聚合函数判断每个分组内是否不存在Iphone的持有记录:

SELECT Name
FROM user_items
GROUP BY Name
HAVING SUM(CASE WHEN Items = 'Iphone' THEN 1 ELSE 0 END) = 0;

方法3:LEFT JOIN 反匹配

左连接持有Iphone的人员集合,匹配结果为空的即为未持有Iphone的人员:

SELECT DISTINCT u1.Name
FROM user_items u1
LEFT JOIN user_items u2 
    ON u1.Name = u2.Name AND u2.Items = 'Iphone'
WHERE u2.Name IS NULL;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:18:00