Mysql一对多列转行拼接函数GROUP_CONCAT

news/2024/7/3 2:17:59

GROUP_CONCAT函数

一对多产生多条数据时, 返回记录会出现一的冗余数据条数, 我们可以把多的列转为行在一条数据中返回, 具体操作如下:

建表  A
字段  id, name, subject
      11,2
      22,3
建表  B
字段  id, sub_name
      1   语文
      2   数学
      3   物理 

此时需要得到数据格式

11,2   语文,数学
22,3   数学,英语

查询语句如下

select
  A.id, A.name, A.subject, GROUP_CONCAT(B.sub_name SEPARATOR ',') AS sub_names
from A 
left join B on FIND_IN_SET(B.id, A.subject)
group by A.id, A.name, A.subject

GROUP_CONCAT(字段 SEPARATOR 分隔符)
FIND_IN_SET(字段, 集合) 判断字段是否在集合里


http://lihuaxi.xjx100.cn/news/1605113.html

相关文章

spring:详解控制反转IOC和AOP

文章目录 IOC工厂模式实例基于xml管理Bean基于注解管理Bean常用注解:用于创建对象的常用注解:用于注入数据的常用注解:和生命周期相关的(了解)常用注解:新注解 IOC IOC (Inversion of Control)是Spring的核心概念之一。它是指控制…

离散傅里叶变换(DFT)的推导及C语言实现

1、傅里叶变换(FT) 傅里叶变换(连续时间傅里叶变换)是该部分内容的理论基础,回顾一下: 傅里叶变换: 傅里叶逆变换: 以上是连续时间傅里叶变换,但计算机只能处理离散的数…

ssm+vue的车辆出租管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。

演示视频: ssmvue的车辆出租管理系统(有报告)。Javaee项目,ssm vue前后端分离项目。 项目介绍: 采用M(model)V(view)C(controller)三层体系结构&…

基于SpringBoot的音乐网站

目录 前言 一、技术栈 二、系统功能介绍 用户信息管理 歌曲分类管理 歌曲信息管理 轮播图管理 歌曲信息 歌曲评论 用户注册 三、核心代码 1、登录模块 2、文件上传模块 3、代码封装 前言 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施…

windows桌面程序与服务程序通过公共文件目录交互

windows权限管理越来越严格,桌面应用和服务之间的交互就很成问题。服务通常以独立的服务身份运行,而且在用户登录之前就开始运行,显然不能去访问用户私人的数据,况且既然是服务,同时为多个不同的登录用户服务也是很常见…

mysql双主主键冲突

在MySQL中,当使用双主键(也称为复合主键)时,可能会遇到主键冲突的问题。主键冲突通常发生在以下情况: 插入冲突:当尝试插入一行数据时,该行的复合主键已经存在于表中时,就会发生主键…

记录宝塔面板申请ssl证书报错 Invalid version. The only valid version for X509Req is 0

问题 宝塔面板申请ssl证书报错 Invalid version. The only valid version for X509Req is 0。 原因是由于服务器端使用了不兼容的 OpenSSL 版本导致的,服务器端的X509Req 版本只支持 0,而宝塔这边默认的版本为2。 我的是之前可以申请ssl,过…

面试算法25:链表中的数字相加

题目 给定两个表示非负整数的单向链表,请问如何实现这两个整数的相加并且把它们的和仍然用单向链表表示?链表中的每个节点表示整数十进制的一位,并且头节点对应整数的最高位数而尾节点对应整数的个位数。例如,两个分别表示整数98…