php - 如何从数据库中获取以下数组?

标签 php sql doctrine doctrine-1.2

好吧,让它更清楚: 我正在使用 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 列的查询

  1. 品牌名称的第一个字母
  2. 品牌名称
  3. 计数(产品.id)

然后水化结果

$results = $q->execute(array(), 'group_by_first_column');

关于php - 如何从数据库中获取以下数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4770935/

相关文章:

php - 将文本的键值行转换为数组

php - PHP/MySQL 的 GUI——创建、读取、更新、删除

javascript - 将 HTML 放置在预览 Div 中而不继承 CSS

MySQL 通过优化选择不同或组

php - SUM 周与 Doctrine

php - 无法更改模型构建器选项

java - 如何在 Java 中执行此 MutliArray 设置?

mysql - 编写多个 UPDATE 查询的更有效方法

python - 查询匹配的 json 数组键

php - Symfony 5 如何在具有多对多关系的更新中自动发送当前用户