mysql分组后将未分组的列合并成行GROUP BY,GROUP_CONCAT
今天遇到一个问题,消息通知可以同时发送给多个班级,而查询消息通知的时候并不需要根据班级分组,如何把多个班级的名称合并成一行数据追加到消息通知的后面呢
然后就发现了 group_concat:
SELECT
cni.ID,
cni.Contents,
cni.LookCount,
cni.CreateDate,
GROUP_CONCAT(ci.`Name`) AS ClassName,
ci.TName
FROM td_classnoticeinfo AS cni
INNER JOIN td_classnoticemapping AS cnm
ON cnm.NoticeID = cni.ID
INNER JOIN td_classinfo AS ci
ON cnm.ClassID = ci.ID
WHERE ci.UserID=1
GROUP BY
cni.ID,
cni.Contents,
cni.LookCount,
cni.CreateDate,
ci.TName
结果就是这样了
1 test data!!! 0 2017-10-10 00:00:00 小太阳班,小山羊班 邢帅杰
参考:https://www.cnblogs.com/thomas12112406/p/5813394.html
mysql分组后将未分组的列合并成行GROUP BY,GROUP_CONCAT的更多相关文章
- Mysql:实现分组查询拼接未分组同一字段字符group_concat()
Mysql:实现分组查询拼接未分组同一字段字符group_concat() MySQL中,如果想实现将分组之后的多个数据合并到一列,可以使用group_concat函数,如下图所示: 在oralce中 ...
- 数据库groub by分组后,把多行数据合并成一行数据(Oracle、Postgres)
关键字 row_number() over (partition by) 例如,下面的数据, 这是按照name分组后,展示property值. 我们想得到这样的值; 第一步:将每一组的proper ...
- oracle表的列合并(group by)和行合并(union all)
group by select a.dn,t.dn dnt,a.BEGIN_TIME,a.R032_001,t.R032_001,a.R032_002,a.R032_003,a.R032_004, a ...
- MySQL全面瓦解10:分组查询和聚合函数
概述 相信我们经常会遇到这样的场景:想要了解双十一天猫购买化妆品的人员中平均消费额度是多少(这可能有利于对商品价格区间的定位):或者不同年龄段的化妆品消费占比是多少(这可能有助于对商品备货量的预估). ...
- MSSQL—按照某一列分组后取前N条记录
以前在开发的时候遇到过一个需求,就是要按照某一列进行分组后取前几条数据,今天又有同事碰到了,帮解决了之后顺便写一篇博客记录一下. 首先先建一个基础数据表,代码如下: IF OBJECT_ID(N'Te ...
- MySQL 对分组后的同类数据进行拼接字符串
MySQL 对分组后的同类数据进行拼接字符串 写后台方法时遇到个问题,需要将表内同一订单号的操作记录流水进行简单拼接输出,不想取出来再操作,找了个mysql的方法直接操作 //group_concat ...
- MySQL 排名、分组后组内排名、取各组的前几名 及排名后更新插入数据表中
一.排名 /*普通排名:从1开始,顺序往下排*/ AS rank ) r ORDER BY score; /*并列排名:相同的值是相同的排名*/ SELECT cs.* , CASE WHEN @p= ...
- MySQL获取分组后的TOP 1和TOP N记录-转
有时会碰到一些需求,查询分组后的最大值,最小值所在的整行记录或者分组后的top n行的记录,在一些别的数据库可能有窗口函数可以方面的查出来,但是MySQL没有这些函数,没有直接的方法可以查出来,可通过 ...
- [MySQL]MySQL数据库中如何查询分组后每组中的最后一条记录?
原文地址:https://codedefault.com/s/how-can-i-retrieve-the-last-record-in-each-group-mysql 问题描述 比如,在MySQL ...
随机推荐
- 构造函数,C++内存管理,内存泄漏定位
构造函数 1.构造顺序 虚基类构造函数,基类构造函数,类对象构造函数,自己的构造函数 2.必须使用初始化列表 (1) 引用成员,常量成员: (2) 基类没默认构造函数(自己重载覆盖了), (3)类对象 ...
- Jupyter notebook 文件路径
Jupyter notebook 文件路径 1. 默认工作路径:C:\Users\think 2. 修改工作路径: C:\Users\think\.jupyter路径下,无配置文件 打开命令提示符:( ...
- UI简单工作
UI用户界面 需求——效果图——风格设计——高保证效果——html 网页的宽度=屏幕的宽度-纵向滚动条的宽度 企业网站一般是1280 根据百度流量研究所 目前我们的网页注主要是1024和1200 ...
- <assert.h>库学习
assert的初步认识 assert宏指令是用来诊断程序是否有误的,函数原型如下 void assert(int expression) 那为什么我们要使用assert而不用printf呢?因为ass ...
- 基础的正则表达式与re模块(2)
一.元字符 字符组是元字符中的一个.在字符组中所有的字符都可以匹配任意一个字符位置上能出现的内容,如果在字符串中有任意一个字符是字符组中的内容,那么就是匹配上的项. [0-9] [a-z] ...
- 微信小程序 在canvas画布上划动,页面禁止滑动
要实现微信小程序 在canvas画布上划动,页面禁止滑动,不仅要设置disable-scroll="true",还要要给canvas绑定一个触摸事件才能生效. <canvas ...
- SpringBoot @Aspect
1.添加maven依赖注解 <!--springBoot的aop--> <dependency> <groupId>org.springframework.boot ...
- asp.net 修改AD账号信息
public void ADInfoEdit(ADUser adu) { try { DirectoryEntry dADM; DirectoryEntry objectuser = null; dA ...
- numpy--深度学习中的线代基础
参考自 微信公众号--深度学习世界(http://mp.weixin.qq.com/s?__biz=MzI4MDMwMDM3NA==&mid=2247484616&idx=1& ...
- linux按键映射
.Xmodmap keycode = Mode_switch keysym k = k K Left keysym j = j J Down keysym l = l L Right keysym h ...