gpt4 book ai didi

mysql - 在 Mysql 中查找不在 GROUP BY 中的值

转载 作者:行者123 更新时间:2023-11-29 01:22:19 25 4
gpt4 key购买 nike

我有一个类似的表:

id    user_id    value
----------------------------
1 2 colour
2 2 receive_email
3 3 colour
4 3 receive_email
5 3 receive_info

我按 user_id 对这个表进行分组。我想要做的只是返回不包含值“receive_info”的组。所以在上面的例子中,我会返回一行 user_id = 2。

我尝试了一些东西,这是最新的:

SELECT id, user_id, value  
FROM table
GROUP BY user_id
HAVING value NOT IN('receive_info');

我也试过:

SELECT id, user_id, value  
FROM table
WHERE value NOT IN('receive_info')
GROUP BY user_id;

当我这样做时,我正在为确实包含值 = 'receive' 的用户取回记录。

有人看到我哪里出错了吗?

谢谢

最佳答案

SELECT  DISTINCT user_id
FROM tableName a
WHERE NOT EXISTS
(
SELECT 1
FROM tableName b
WHERE a.user_id = b.user_id AND
value = 'receive_info'
)

或使用 LEFT JOIN

SELECT  DISTINCT a.user_id
FROM tableName a
LEFT JOIN tableName b
ON a.user_id = b.user_id AND
b.value = 'receive_info'
WHERE b.user_id IS NULL

这两个查询将输出

╔═════════╗
║ USER_ID ║
╠═════════╣
║ 2 ║
╚═════════╝

关于mysql - 在 Mysql 中查找不在 GROUP BY 中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16538013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com