假设你要查询的表名为a和b,其中a有一条数据,c1=1,c2=2,其中b有两条数据,c1=1,c2=2,c3=3和c1=1,c2=2,c3=4。 现有查询语句:“select a.c1,a.c2,b.c1,b.c2,b.c3 from a left join b on a.c1=b.c1”,请将这条查询语句结果优化为一条,其中结果b.c3以”[]“括住,逗号间隔
时间: 2024-02-20 17:02:37 浏览: 28
这条查询语句的结果为:
c1 | c2 | c1 | c2 | c3
---|----|----|----|-----
1 | 2 | 1 | 2 | 3
1 | 2 | 1 | 2 | 4
我们可以使用 GROUP_CONCAT 函数将 b.c3 拼接成一个字符串,然后再用 CONCAT 函数将字符串拼接成要求的格式。优化后的查询语句如下:
```
SELECT a.c1, a.c2, b.c1, b.c2, CONCAT('[', GROUP_CONCAT(b.c3 SEPARATOR ','), ']') AS c3
FROM a
LEFT JOIN b ON a.c1 = b.c1
GROUP BY a.c1, a.c2, b.c1, b.c2
```
阅读全文