我有 3 个表,分别是:
类(class)
- courses_id
- 姓名
QnAs
- qna_id
- student_id
- courses_id
- 姓名
- 问题
学生
- student_id
- 姓名
现在我正在尝试计算每门类(class)有多少个 qna。我该如何进行查询?
我尝试过这样做:
SELECT (SELECT COUNT(qna_id) AS Expr1
FROM QnAs) AS Count
FROM QnAs AS QnAs_1 CROSS JOIN
Courses
GROUP BY Courses.courses_id
它确实会计算有多少个 QnA,但不会计算每个类(class)的 QnA
我得到的输出是每个类(class)名称和 QnAs 计数,但我想要的是每个类(class)的 QnA 编号
最佳答案
您似乎只想按类(class) ID 聚合 QNA:
select courses_id, count(*)
from qnas
group by courses_id
order by courses_id;
连同类(class)名称:
select c.course_id, c.name, coalesce(q.cnt, 0) as qna_count
from courses c
left join
(
select courses_id, count(*) as cnt
from qnas
group by courses_id
) q on q.course_id = c.course_id
order by c.course_id;
关于mysql - SQL如何统计表的每个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54307621/