获取MySQL表中每个类别的行数

病态

让我说,我有两个表类别问题在问题表中,同一类别下的问题很少或更多,并且该表具有各种类别的问题。

我需要问题表下每个类别中的行数。

Category: +----+--------+--+ | id | name | | +----+--------+--+ | 1 | Type 1 | | | 2 | Type 2 | | | 3 | Type 3 | | +----+--------+--+

Questions +----+------+-------+ | id | name | catid | +----+------+-------+ | 1 | a | 1 | | 2 | b | 1 | | 3 | c | 1 | | 4 | d | 2 | | 5 | e | 2 | | 6 | f | 3 | +----+------+-------+

category_count = [3,2,1]

我要做的就是

if($model){
        $i = 0; $j = 0;
        $category_count = 0;
        $count [] = null;

        foreach($model as $question) {
            $category_count++;
            if(isset($output))
                if($question->catid != $output[$i-1]['cat'] ){
                    $count[$j] = $category_count;
                    $j++;
                    $category_count = 0;
                }
            $output[$i++] = ['id' => $question->id, 'cat' => $question->catid, 'title' => $question->title];
        }
        $count[$j]=$category_count;
        $final = ['count'=>$count, 'questions'=>$output];
}

我的问题是

  1. 除了可以在代码中完成操作之外,我们还可以使用sql查询有效地获取count数组
  2. 如果没有,请帮助我优化代码。

T!A。

marijnz0r

根据表的DDL,查询应如下所示:

SELECT c.name, COUNT(*) 
FROM category c
JOIN questions q
ON q.catid = c.id
GROUP BY c.name

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取表中每个类别的最新日期?

查询以获取每个类别+子类别的相等行数

如何从类别表中获取 5 个类别并在 Laravel 中获得每个类别的 4 个帖子

在数据透视表中获取每个行类别的累积列表

获取JPA,MySQL中类别的帖子

表中带有子类别的类别-PHP + MYSQL

如何从表格中获取每个类别的名字?PostgreSQL

获取每个类别的每月价格?

SQL获取每个类别的计数

获取每个类别的最新状态

CategoryAxis (xAxis) 获取每个类别的位置

尝试从phpmyadmin表输出每个类别的子类别时,php中的未定义索引

Sklearn - 按类别分组并从每个类别的数据框中获取前 n 个单词?

如何在“多类别分类问题”中获取每个类别的精度得分?

数组中每个类别的总和

选择每个类别的最后3条新闻-两张表-(MySQL-PHP)

获取Postgres数据库中每个表的行数

获取保留所有列的熊猫中每个类别的前n个值

如何在每个类别的加载页面中仅获取 2 个产品

如何在Excel中根据每个类别的项目编号获取连续编号?

如何在 Django 中获取每个类别的唯一记录

如何从mysql上的每个类别中获取最大id?

在 MYSQL 中显示过去六个月每个类别的总费用

获取表中的行数

如何使用分组依据获取每个类别的计数?

SQL查询以获取每个类别的产品数量

如何按 ID 分组并获取每个类别的计数

SQL通过OFFSET / FETCH获取每个类别的产品

如何获取每个类别的订单数量?