码迷,mamicode.com
首页 > 数据库 > 详细

【mysql】语句优化

时间:2016-08-16 19:55:17      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:

论坛上看到有个类似的分割查看查询结果的梗 一时手痒就出手 治一治

 

比如有 A B 表
A 表
ID,NAME
1,A
2,B
3,C

B 表
FK_ID,TYPE,VALUE
1,socer,100
1,socker,90
2,socker,20

求这样的结果
A.ID,A.NAME,A.SOCKER
1,A,‘100,90‘
2,B,‘20‘


也就是 SELECT 的时候做了一个字段 SOCKER 把 B 表的列值做了一行,用","符号分割。求 SQL 语句 感谢

 

手写 建表
create table A
(
   ID             int(10) not null auto_increment,
   NAME           varchar(20),
   primary key (ID)
);

create table B
(
   FK_ID             int(10) not null auto_increment,
   TYPE           varchar(10),
  VALUE      
varchar(10)
 );

 

 

实现sql如下①

SELECT  A.ID ,
        A.NAME ,
        group_concat(b.VALUE) AS SOCKER
FROM    A
        INNER JOIN B ON A.ID = b.FK_ID
GROUP BY A.ID ,
        A.NAME

实现sql如下② 支持输出结果写进硬盘路径

SELECT  A.ID     AS  A.ID ,
        A.NAME  AS   A.NAME  ,
GROUP_CONCAT(B.VALUE) AS  A.SOCKER FROM    A,B WHERE A.ID = B.FK_ID GROUP BY A.ID , A.NAME
INTO OUTFILE "D:/NEWS.SQL";

 

【mysql】语句优化

标签:

原文地址:http://www.cnblogs.com/zhangdashao/p/5777474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!