在Mysql中查找不在GROUP BY中的值
我有一张类似于:在Mysql中查找不在GROUP BY中的值,mysql,Mysql,我有一张类似于: id user_id value ---------------------------- 1 2 colour 2 2 receive_email 3 3 colour 4 3 receive_email 5 3 receive_info 我按用户id对该表进行分组。我只想返回不包含值“receive\u info”的组。因此,在上面
id user_id value
----------------------------
1 2 colour
2 2 receive_email
3 3 colour
4 3 receive_email
5 3 receive_info
我按用户id对该表进行分组。我只想返回不包含值“receive\u 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 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 ║
╚═════════╝
╔═════════╗
║ USER_ID ║
╠═════════╣
║ 2 ║
╚═════════╝