gpt4 book ai didi

php - Merge Join 结果在一个数组中

转载 作者:搜寻专家 更新时间:2023-10-30 20:24:16 25 4
gpt4 key购买 nike

$qb = $this->createQueryBuilder('u')
->select('u.id, u.name, c.category')
->innerJoin('u.categories', 'c')
->where('u.id = (:user)')
->setParameter('user', $user)
->getQuery()
->execute();

我总是得到这样的结果:

Array[0] = 'id' -> 1, 'name' -> john, 'category' -> A
Array[1] = 'id' -> 1, 'name' -> john, 'category' -> B
Array[2] = 'id' -> 1, 'name' -> john, 'category' -> C

我想得到这个:

Array[0] = 'id' -> 1, 'name' -> john, 'category' -> [A,B,C]

如果我使用 Group By u.id,我只会得到第一个类别的第一个 Array[0],而我丢失了其他两个类别。

我该如何执行此查询?

谢谢!

最佳答案

SQL 查询

SELECT
id
, name
, GROUP_CONCAT(category) AS categories
FROM
[table]
GROUP BY
id
, name

学说代码

条令代码应该是这样的。

$qb = $this->createQueryBuilder('u')
->select('u.id, u.name', DB::raw('GROUP_CONCAT(category) AS categories'))
->innerJoin('u.categories', 'c')
->where('u.id = (:user)')
->groupBy('u.id', 'u.name')
->setParameter('user', $user)
->getQuery()
->execute();

关于php - Merge Join 结果在一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45546146/

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