1.需求
我们有时候会将多行数据进行合并显示(Java 使用循环处理 有点麻烦 现在直接在sql中处理)
2.效果
3. 表结构 及sql 查询
用户角色中间表
角色表
表关系
--3. 我们需要 分组查询 使用GROUP_CONCAT 函数
SELECT
ur.user_id,
GROUP_CONCAT(r.role_name SEPARATOR ',') AS roleName
FROM
t_user_role ur,
t_role r
WHERE ur.user_id = '7513523723d24a36b80406aa7409bcb7'
AND ur.role_id = r.role_id
GROUP BY ur.user_id
4. 附 表sql
用户表:
create table `t_user` ( `index` int (11), `user_id` varchar (150), `login_id` varchar (765), `user_name` varchar (765), `password` varchar (765), `role_id` varchar (765), `role_name` varchar (765), `forbidden` varchar (15), `create_user_id` varchar (765), `create_user_name` varchar (765), `create_time` varchar (765), `update_time` varchar (765), `update_user_id` varchar (765), `update_user_name` varchar (765) ); insert into `t_user` (`index`, `user_id`, `login_id`, `user_name`, `password`, `role_id`, `role_name`, `forbidden`, `create_user_id`, `create_user_name`, `create_time`, `update_time`, `update_user_id`, `update_user_name`) values('1','59173a48265e45ca93553693b5c345a6','zxy','张馨雨','123456',NULL,NULL,'0','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:26:41',NULL,NULL,NULL); insert into `t_user` (`index`, `user_id`, `login_id`, `user_name`, `password`, `role_id`, `role_name`, `forbidden`, `create_user_id`, `create_user_name`, `create_time`, `update_time`, `update_user_id`, `update_user_name`) values('2','f40a20674020402b95c6254163273b3b','xyt','谢雨婷','123456','58ff2336498c41f181e9a0850e8f1dcb','阿里云A主管','0','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:27:01',NULL,NULL,NULL); insert into `t_user` (`index`, `user_id`, `login_id`, `user_name`, `password`, `role_id`, `role_name`, `forbidden`, `create_user_id`, `create_user_name`, `create_time`, `update_time`, `update_user_id`, `update_user_name`) values('3','7513523723d24a36b80406aa7409bcb7','lx','李欣','123456','8ecb034d7c494d87a5fa6f7135259b7f,541787a05bf14d4a9092eef209cb5d2d,17d710ba848d405ba670e71af2a34cb7','总经理,阿里云技术经理,阿里云B主管','0','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:27:23',NULL,NULL,NULL); |
用户角色中间表
/*Data for the table `t_user_role` */ insert into `t_user_role`(`index`,`user_id`,`role_id`,`desire`,`create_user_id`,`create_user_name`,`create_time`) values (29,'7513523723d24a36b80406aa7409bcb7','8ecb034d7c494d87a5fa6f7135259b7f','管理员给李欣授权了总经理角色','89772925b97442669e2ad3d667061973','管理员','2018-11-30 19:14:25'),(30,'7513523723d24a36b80406aa7409bcb7','541787a05bf14d4a9092eef209cb5d2d','管理员给李欣授权了阿里云技术经理角色','89772925b97442669e2ad3d667061973','管理员','2018-11-30 19:14:25'),(31,'7513523723d24a36b80406aa7409bcb7','17d710ba848d405ba670e71af2a34cb7','管理员给李欣授权了阿里云B主管角色','89772925b97442669e2ad3d667061973','管理员','2018-11-30 19:14:25'),(34,'f40a20674020402b95c6254163273b3b','58ff2336498c41f181e9a0850e8f1dcb','管理员给谢雨婷授权了阿里云A主管角色','89772925b97442669e2ad3d667061973','管理员','2018-11-30 19:14:53'); |
角色表
CREATE TABLE `t_role` ( /*Data for the table `t_role` */ insert into `t_role`(`index`,`role_id`,`role_name`,`desire`,`create_user_id`,`create_user_name`,`create_time`,`update_time`,`update_user_id`,`update_user_name`) values (1,'76c78349d8c44ebbb731a96bddad68c5','管理员','用有所有权限','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:28:05',NULL,NULL,NULL),(2,'8ecb034d7c494d87a5fa6f7135259b7f','总经理','公司运行管理人','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:28:38',NULL,NULL,NULL),(3,'8b23b45918e9400082883f4b5ae958c2','技术总监','公司技术负责人','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:29:18',NULL,NULL,NULL),(4,'541787a05bf14d4a9092eef209cb5d2d','阿里云技术经理','负责阿里云技术业务','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:30:25',NULL,NULL,NULL),(5,'58ff2336498c41f181e9a0850e8f1dcb','阿里云A主管','负责ECS技术','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:31:11',NULL,NULL,NULL),(6,'17d710ba848d405ba670e71af2a34cb7','阿里云B主管','负责阿里云安全组技术业务','89772925b97442669e2ad3d667061973','管理员','2018-11-30 09:32:00',NULL,NULL,NULL); |