我有一个包含group_id,user_id和role_id的表。
由于唯一键设置错误,因此有些用户在一个组中两次,具有不同的角色。像这样:
group_id | user_id | role_id
1 | 1 | 1
1 | 1 | 2
2 | 1 | 1
1 | 2 | 1
2 | 2 | 3
如何在这种情况下找到用户的用户ID?那么,在这个例子中只有用户id 1?
编辑:
因为@Manil Liyanage的答案和@TX Turner的答案都没有给我正确的结果,也许我不得不再解释一下;
用户可以分为多个组,但不应多次出现在某个组中。不幸的是,由于错误的唯一键,一些用户现在不止一次在同一组中,但只有另一个角色。如何多次查找群组中的用户?
答案 0 :(得分:2)
以下内容将显示每个组中哪些用户ID重复,以及计数。
SELECT user_id, group_id, COUNT(group_id) cnt
FROM tablename
GROUP BY user_id, group_id
HAVING COUNT(group_id) > 1
答案 1 :(得分:1)
以下应该适合您。它显示重复记录的ida
编辑:使用连接的having-count语句中的键。
SELECT concat(concat('Group is: ',group_id) , concat(' user id : ' , user_id)) Places FROM table HAVING count(concat(group_id,concat (':',user_id))) > 1