好吧,让它更清楚: 我正在使用 doctrine
我有一张表品牌和产品
Brand
id
name
Product
id
name
brand_id
我在数据库中有很多品牌和这些品牌的产品。 我想检索按 Brand.name 的第一个分组的品牌列表(+ 其产品数量)。
ex:
array(
n => array(
0 => array('Nike', 4 ),
1 => array('North Pole', 18)
.....
)
.....
)
所以我的问题是这是否可以通过一个查询以一种有效的方式完成。 我真的不想为每个 brand.name 的第一个后者运行单独的查询。 “分层数据” Doctrine 在我脑海中浮现,但我相信它是为了不同的东西? 谢谢
最佳答案
如果您打算多次使用这种形式的结果,那么将格式设置为 Hydrator 可能是值得的,如 described here .
在您的情况下,您可以创建一个选择 3 列的查询
- 品牌名称的第一个字母
- 品牌名称
- 计数(产品.id)
然后水化结果
$results = $q->execute(array(), 'group_by_first_column');
关于php - 如何从数据库中获取以下数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770935/