select u.name from s_user u,s_role r where u.id = r.user_id

select u.name from s_user u,s_role r where u.id = r.user_id
group by u.name

就加了个group by u.name 然后就把u.name里的数据重复的去掉了!
单表查的时候不会出现这种问题!
求解释一下!
------解决方案--------------------
加了 group by u.name 是按 u.name 进行分组,自然查询结果不会有重复的 u.name
------解决方案--------------------
+1 既然是分组,如果查询结果两条相同,肯定会分为一组啊。
------解决方案--------------------
没错
------解决方案--------------------
用group by是将查询字段中相同的值,作为一组,不管你要查询的字段的值有多少个相同(其他字段可以不相同),都会将其归为一组,查询结果都不会有重复。
------解决方案--------------------
恩,分组函数么,相同就喝到一起了。

------解决方案--------------------
是你的关联表引起的
你关联的s_role表应该有两条相同的user_id,它们对应表s_user 一条ID