场景
查询一个用户信息,并将该用户下的所属角色一并查出
创建测试表及数据
create table sys_user( id int, name varchar2(20) ); insert into sys_user values(1,'张三'); insert into sys_user values(2,'李四'); create table sys_role( id int, role_name varchar2(50) ); insert into sys_role values(1,'技术部'); insert into sys_role values(2,'运营部'); create table sys_user_role( id int, user_id int, role_id int ); insert into sys_user_role values(1,1,1); insert into sys_user_role values(2,1,2);
查询用户及所属角色
select u.*, (select to_char(wm_concat(r.role_name)) from sys_user_role t left join sys_role r on (t.role_id = r.id ) where t.user_id = u.id) roles from sys_user u;
wm_concat默认为COLB类型,这里我们使用to_char转为字符类型
mysql中使用group_concat(),wm_concat为oracle独有