SELECT `groups`.`name`, `groups`.`id`
FROM `groups`
JOIN `group_members`
ON (`group_members`.`user_id` = `groups`.`user_id`)
WHERE `groups`.`user_id` = '33'
ORDER BY `groups`.`id`
我需要获取他所属的每个组的组ID和组名称。但是结果不能重复!
我的查询返回很多重复的条目。
在
groups
中存储确实存在的所有组(name
,description
等)。在group_members
中存储了属于某个组(user_id
,group_id
等)的所有用户。如何修改此查询以获得不重复但正确的结果?感谢您的建议!
编辑:
在
groups
中没有user_id
。该组的所有成员都存储在group_members
表中。我需要获取用户是成员的所有组(组的ID和名称)。 最佳答案
如果要了解一个用户的所有组,则必须加入group_members.group_id
并编辑WHERE
子句。
SELECT `groups`.`name`, `groups`.`id`
FROM `groups`
JOIN `group_members`
ON (`group_members`.`group_id` = `groups`.`id`)
WHERE `group_members`.`user_id` = '33'
ORDER BY `groups`.`id`
关于mysql - 使用SQL连接重复结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6787927/