gpt4 book ai didi

php - 多列的 String_agg

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

我有以下选择

$repairs = DB::select(DB::raw('
select r.id repair_id, w.name, w.surname
from repairs r
join repair_worker rw on r.id = rw.repair_id
join workers w on w.id = rw.worker_id
where r.vehicle_id = ?
group by w.name, w.surname, r.id
'),[$vehicle->id]);

我正在尝试将 w.namew.surname 放到一个字段中,例如用逗号分隔。有一个函数 string_agg(column, ',') 但我没有运气让它工作。我总是遇到语法错误。

我的尝试:

$repairs = DB::select(DB::raw('
select r.id repair_id, string_agg(w.name, w.surname, ', ') workers
from repairs r
join repair_worker rw on r.id = rw.repair_id
join workers w on w.id = rw.worker_id
where r.vehicle_id = ?
group by r.id
'),[$vehicle->id]);

你会怎么做?

我正在使用最新的 Postgresql 9+

最佳答案

使用|| 运算符执行字符串连接,然后聚合此结果。

$repairs = DB::select(DB::raw("
select r.id repair_id, string_agg(w.name || ' ' || w.surname, ', ') workers
from repairs r
join repair_worker rw on r.id = rw.repair_id
join workers w on w.id = rw.worker_id
where r.vehicle_id = ?
group by r.id
"),[$vehicle->id]);

关于php - 多列的 String_agg,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43687600/

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