【mysql】语句优化
论坛上看到有个类似的分割查看查询结果的梗 一时手痒就出手 治一治
比如有 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";