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

如何从user_article表中查询无文章在指定数组内的用户

问题描述

现有user_article表,包含user、article两个字段,样例数据如下:

userarticle
152
1104
212
35
34

需求:给定目标文章集合(3,4,52),查询没有任何关联文章属于该集合的所有用户,预期返回结果为用户2。

可用查询方案

方案1:NOT EXISTS 实现(推荐,性能更优)

逻辑为直接排除所有存在关联文章在目标集合内的用户,匹配效率更高:

SELECT DISTINCT `user`
FROM user_article ua
WHERE NOT EXISTS (
    SELECT 1
    FROM user_article ua_in
    WHERE ua_in.`user` = ua.`user`
      AND ua_in.article IN (3,4,52)
);

方案2:分组聚合实现

按用户分组后统计命中目标集合的文章数量,筛选数量为0的用户:

SELECT `user`
FROM user_article
GROUP BY `user`
HAVING COUNT(IF(article IN (3,4,52), 1, NULL)) = 0;

两种方案执行后均返回用户2,符合预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 10:54:01