SQl语句GROUP_CONCAT的使用
来源:互联网 发布:淘宝信用贷款影响大吗 编辑:程序博客网 时间:2024/06/16 11:43
引言
最近涉及到三张表联查,中间还涉及到对数据的处理,看张图,足以说明逻辑之复杂。
逻辑梳理
简单的介绍一下,我需要的查询结果:
从车主信息表里获取车主的登录信息,OK,之后的事情与车主信息表无关了。
然后,我需要从车主故事表里,获取车主故事的ID,根据这个ID去查询车主故事图片信息表里的图片,但是一个
车主故事可能对应多个相关图片,所以需要将获取的n张图片,放在一个字段里,查询出来,也就是
“pic1,pic2,pic3……picn” 这样的形式。下边看看在该需求下,sql的进化过程:
级联查询三张表
级联查询三张表,并不难,sql语句如下:
SELECTmos.*,m.LOGIN_NAME,mosp.PIC_URL, mosp.SUFFIX FROMmember_owner_story mosLEFT JOIN member_owner_story_pic mosp ON mos.MEMBER_OWNER_STORY_ID = mosp.MEMBER_OWNER_STORY_IDLEFT JOIN member m ON mos.MEMBER_ID = m.MEMBER_IDWHEREmos.IS_DELETE = 'N'
但是这并没有得到我想要查询的结果,只是将图片路径和后缀名查出来了而已,于是有了下一个sql语句:
Concat使用
先看代码:
SELECTmos.*,m.LOGIN_NAME,tmp.num AS EVALUATE_NUM,CONCAT(mosp.PIC_URL, mosp.SUFFIX) PIC_URLFROMmember_owner_story mosLEFT JOIN member_owner_story_pic mosp ON mos.MEMBER_OWNER_STORY_ID = mosp.MEMBER_OWNER_STORY_IDLEFT JOIN member m ON mos.MEMBER_ID = m.MEMBER_IDLEFT JOIN (SELECTmember_owner_story_id,count(member_owner_story_id) numFROMMEMBER_OWNER_STORY_EVALUATE moseGROUP BY member_owner_story_id) tmp ON tmp.member_owner_story_id = mos.MEMBER_OWNER_STORY_IDWHEREmos.IS_DELETE = 'N'
效果如下:
可以看到图片路径和后缀名组合到一起了,但是,我的需求是相同的ID的图片信息组合到一个字段里,所以还得
改!
GROUP_CONCAT的使用
sql语句:
SELECTmos.*, m.LOGIN_NAME,mose.num AS EVALUATE_NUM,mosp.pic_url AS PIC_URL,m.headFROMmember_owner_story mosLEFT JOIN (SELECTmember_owner_story_id,GROUP_CONCAT(CONCAT(tmp.PIC_URL, tmp.SUFFIX)) pic_urlFROMmember_owner_story_pic tmpGROUP BYmember_owner_story_id) mosp ON mosp.member_owner_story_id = mos.MEMBER_OWNER_STORY_IDLEFT JOIN (SELECTCONCAT(m.MEMBER_LOGO,m.suffix) head,m.LOGIN_NAME LOGIN_NAME,m.MEMBER_ID MEMBER_IDFROMmember m)m ON mos.MEMBER_ID = m.MEMBER_IDLEFT JOIN (SELECTmember_owner_story_id,count(member_owner_story_id) numFROMMEMBER_OWNER_STORY_EVALUATE GROUP BYmember_owner_story_id) mose ON mose.member_owner_story_id = mos.MEMBER_OWNER_STORY_IDWHEREmos.IS_DELETE = 'N'
效果:
可以看到我想要的效果出来了,所有的URL地址通过“,”组合到一起了,那么前台在处理的时候,直接通过split
将URL拆开就OK了。
总结
要学习的东西太多,强大的sql语句,语法结构还有业务流程,这些这些统统都仍然需要学习。
1 0
- SQl语句GROUP_CONCAT的使用
- sql语句之group_concat函数
- SQL GROUP_CONCAT的一个例子
- mysql的group_concat函数使用
- MYSQL函数group_concat的使用
- MySQL : group_concat( ) 函数的使用
- mysql group_concat函数的使用
- Mysql中group_concat的使用
- SQL语句的使用
- sql语句的使用
- sql语句的使用
- SQL语句的使用
- SQL 语句的使用
- MySQL的GROUP_CONCAT()函数的使用
- mysql 5注入中group_concat的使用
- mysql 5注入中group_concat的使用
- 关于mysql函数GROUP_CONCAT的使用
- MySql行转列 MYSQL函数group_concat的使用
- Hadoop - 任务调度系统比较
- 编译tomcat7
- 科技论文写作流程及注意
- 如何在Github上为开源项目贡献自己的代码
- 整理下swing的setborder
- SQl语句GROUP_CONCAT的使用
- OpenCV学习笔记(四)创建Trackbar & 图像对比度、亮度值调整
- Windows操作系统服务编写原理
- RabbitMQ消息队列
- [生存志] 第49节 晋国微公室
- OpenCV中CvSVM部分函数解读
- scp与sftp命令
- Qt通过QAxWidget来使用flash控件的问题
- 微信公众号开发智能硬件MP后台注册篇