MYSQL join using like and get concat function

在项目中,需要多表关联 以及获取一个店下面所有的店员的名称, 需要用到类似SUM的函数  GROUP_CONCAT

关联时条件用LIKE时,需要用到字符串做条件, 用到CONCAT函数

FROM (bst_store AS st      LEFT JOIN bst_user AS charge ON st.uid LIKE CONCAT(‘%,‘,charge.id,‘,%‘)      LEFT JOIN bst_user AS guide ON st.did LIKE CONCAT(‘%,‘,guide.id,‘,%‘)      LEFT JOIN bst_fill_total AS ft ON st.id = ft.sid)
ft.inputtime,ft.updatetime,GROUP_CONCAT(charge.name SEPARATOR ‘ ‘) AS charge_name,GROUP_CONCAT(guide.name SEPARATOR ‘ ‘) AS guide_name

在GROUP_CONCAT中出现重复时需要去重
GROUP_CONCAT(DISTINCT charge.name SEPARATOR ‘ ‘) AS charge_name,GROUP_CONCAT(DISTINCT guide.name SEPARATOR ‘ ‘) AS guide_name
 
时间: 2024-12-18 21:09:14

MYSQL join using like and get concat function的相关文章

图解MYSQL JOIN ON,SQL JOIN 详解,数据库sql join语句

对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams 解释了SQL的Join.我觉得清楚易懂,转过来. 假设我们有两张表. Table A 是左边的表. Table B 是右边的表. 其各有四条记录,其中有两条记录是相同的,如下所示

Mysql Join语法解析与性能分析详解

一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditiona table1:左表:table2:右表. JOIN 按照功能大致分为如下三类: INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录. RIGHT JOIN(右连接):与 LEF

MySQL JOIN原理

先看一下实验的两张表: 表comments,总行数28856 表comments_for,总行数57,comments_id是有索引的,ID列为主键. 以上两张表是我们测试的基础,然后看一下索引,comments_for这个表comments_id是有索引的,ID为主键. 最近被公司某一开发问道JOIN了MySQL JOIN的问题,细数之下发下我对MySQL JOIN的理解并不是很深刻,所以也查看了很多文档,最后在InsideMySQL公众号看到了两篇关于JOIN的分析,感觉写的太好了,拿出来分

mysql join详解

下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char(

MySQL JOIN 语法说明与 图解

一.MySQL JOIN 分类 JOIN 按照功能大致分为如下三类: INNER JOIN(内连接):取得两个表中存在连接匹配关系的记录. LEFT JOIN(左连接):取得左表(table1)完全记录,即是右表(table2)并无对应匹配记录. RIGHT JOIN(右连接):与 LEFT JOIN 相反,取得右表(table2)完全记录,即是左表(table1)并无匹配对应记录. 二.图解关系 INNER JOIN:用于取得两个表中存在连接匹配关系的记录. mysql> select * f

mysql join 对比和分析

学习的时候了解了一下join操作,包含left join,right join,inner join和out join,每种操作之后生成的表的空间大小不同:假设A和B表做join操作,如果是left join,则以A表为基准,然后和B表进行匹配,表的大小至少A表的大小(乘以B表中和A表中连接的最大覆盖率,及A表的一条记录所对应B表中记录的最大条数):则right join则以B表为基准:inner join,则为A和B intersection之后的交集:outer intersection,则

图解mysql join

原文:http://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins 这个图文解释mysql join的各种技巧

MySQL join的实现原理及优化思路

Join 的实现原理 在MySQL 中,只有一种Join 算法,也就是Nested Loop Join,没有其他很多数据库所提供的Hash Join,也没有Sort Merge Join.顾名思义,Nested Loop Join 实际上就是通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表中查询数据,然后合并结果.如果还有第三个参与Join,则再通过前两个表的Join 结果集作为循环基础数据,再一次通过循环查询条件到第三个表中查询数据,如此往复. 下面

mysql join 查询图

mysql join 查询,特别是对查两个表之间的差集,可以用table字段=null来做. 注意千万不是join on XX!=XX  ,这样出来的结果是错误的.