多对多联合查询

user和role多对多关系,关联表略

要求一个sql查出来,以user为主表,并以一个字段显示“所有角色名拼接后的字符串”如图:
谢谢

sql
yyyyyyyi
yyyyyyyi 兄弟,怎么解决呢
6 年多之前 回复
lorewolf311
tianchao_ 奥 知道了
6 年多之前 回复
lorewolf311
tianchao_ 查询的结果只有一个字段? “所有角色名拼接后的字符串”什么意思
6 年多之前 回复

1个回答

select u.*,GROUP_CONCAT(r.rname)
from user u,role r,user_role ur
where u.uid=ur.uid and r.rid=ur.rid GROUP BY u.uid

关键是用GROUP_CONCAT()函数

lorewolf311
tianchao_ 你得学习下left join inner join ... 这些...
6 年多之前 回复
yyyyyyyi
yyyyyyyi OK 想问一下,这种同时查询多表,会不会产生笛卡儿积,结果会很庞大。 如果用连接能做吗
6 年多之前 回复
lorewolf311
tianchao_ wm_concat
6 年多之前 回复
lorewolf311
tianchao_ 我写的是mysql的,你要oracle的?
6 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问