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和组名。但结果不能重复!SQL连接的重复结果
我的查询返回了很多重复的条目。
groups
存储所有存在的组(name
,description
等)。在group_members
中存储了属于某个组的所有用户(user_id
,group_id
等)。
如何修改此查询以获得不重复但正确的结果?感谢您的建议!
编辑:
在groups
没有user_id
。该组的所有成员都存储在group_members
表中。我需要获得用户所在的所有组(组的ID和名称)。
为什么组有一个user_id?它是主人吗? – Jacob
@cularis:它不是代表组的GROUP表,它是GROUP_MEMBERS表,代表了mamber和group之间的连接... –
@Daniel这就是为什么它不合逻辑地加入groups.user_id? – Jacob