本文主要是介绍mysql三表查询与多列合成一列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
表结构
t_user表
t_user_role表
t_role表
分析
一个用户对应一个或多个角色,但是user表和role表没有直接对应,对应关系在第三张表中
需求
查询user表中用户信息,并加上用户对应的所有角色名
sql语句
select a.*,GROUP_CONCAT(role_name) as role_name from t_user aLEFT JOIN t_user_role b ON a.id = b.user_idleft JOIN t_role c ON b.role_id = c.idGROUP BY a.id
运行结果如下
最后结果集中的role_name为字符串,返回后可以在前端用字符串分割的方法使用。
解析
GROUP_CONCAT函数可以实现将多列合成一列中,并且可以指定分隔符
后面则使用左查询和分组查询将三张表数据合在一起
这篇关于mysql三表查询与多列合成一列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!