首页 > 数据库技术 > 详细

【mysql】语句优化

时间:2016-08-16 19:53:16      阅读:230      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!