iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >一对多时,如何将userId相同的多条关联表数据合并为一条
  • 564
分享到

一对多时,如何将userId相同的多条关联表数据合并为一条

mysql数据库java 2023-09-06 06:09:04 564人浏览 薄情痞子
摘要

工作中遇到了主表关联拓展表的字段,查询后在表单上将一个userId关联到的多条拓展表数据合并为一行展示的场景,在这里记录一下解决方法。 1.PGsql的方法 业务场景:存在3个表(人员表,人员属性关联

工作中遇到了主表关联拓展表的字段,查询后在表单上将一个userId关联到的多条拓展表数据合并为一行展示的场景,在这里记录一下解决方法。

1.PGsql的方法

业务场景:存在3个表(人员表,人员属性关联表,属性字段拓展表),一个人员可以有多个属性,需要在列表上将人员的信息和属性类型展示在一行,如图2。

在这里插入图片描述

图1

在这里插入图片描述

图2
这里由于涉及分页展示,所以人员表不便于和人员属性关联表直接left join,但是这里可以先把人员id相同的关联表数据合并为一条,然后将这些合并后的数据作为临时表和人员表left join
这样就避免了分页时条数会因为在内存中合并同userId的数据行而减少的问题,合并中间表的数据作为临时表的SQL大致如下。

select id,string_agg(type,',') from relation group by id;

参考博客:
string_agg函数

2.Mysql的方法

mysql中没有string_agg聚合函数,但是可以使用group_concat解决这个问题。
在这里插入图片描述

创建demo表

添加演示数据
在这里插入图片描述

示例SQL

SELECT id,GROUP_CONCAT(description) as des from user_demo GROUP BY id

结果

参考博客:
在这里插入图片描述

MySQL 多行数据合并成一行

来源地址:https://blog.csdn.net/qq_41659869/article/details/127620396

您可能感兴趣的文档:

--结束END--

本文标题: 一对多时,如何将userId相同的多条关联表数据合并为一条

本文链接: https://www.lsjlt.com/news/396590.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作