gpt4 book ai didi

mysql - 在 SQL 中聚合跨 `group by` 的字符串?

转载 作者:行者123 更新时间:2023-11-29 04:49:37 25 4
gpt4 key购买 nike

考虑以下架构:

create table A
(
id int primary id
)

create table B
(
a_id int,
s varchar(255)
)

然后是下面的查询:

select A.id, sum(1), ??? concat_join(B.s) ???
from A left join B on A.id = B.a_id group by A.id

A 和 B 之间是一对多的关系,所以多行将被分组为一个。 “concat_join”的理想行为是针对组中的每个 B.s 通过连接它们(可能使用空格分隔符)将它们连接在一起成为一个字符串。

有什么办法可以表达这是 MySQL 5.5 吗?

最佳答案

使用GROUP_CONCAT

select A.id, sum(1), GROUP_CONCAT(B.s)
from A left join B on A.id = B.a_id
group by A.id

默认情况下,字符串由逗号 分隔。如果要更改它,请添加 SEPARATOR 关键字,

select A.id, sum(1), GROUP_CONCAT(B.s SEPARATOR ';')
from A left join B on A.id = B.a_id
group by A.id

关于mysql - 在 SQL 中聚合跨 `group by` 的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13431738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com