我有一个名为posts
的表,它有一个名为forum_type_id
的字段。
另一个名为forum
的表具有一个名为forum_type
和一个id
的字段。
论坛表的ID代表其用于与forum_type_id
表中的posts
关系的类型
现在,在我的数据库中。
在帖子中,我有3个带有{{1}}的条目(代表我的论坛表的类型2为“问题”。)
2个带有forum_type_id = 2
的条目(代表我的论坛表的类型1为“常规”)
我正在尝试进行查询,以分别获取每种“类型”的数量
我尝试这样的事情。
forum_type_id = 1
我希望得到这个示例
generalCount = 2;
questionsCount = 3;
但是它做一个加法运算,并只返回一行加上2个数字
答案 0 :(得分:1)
您可以尝试使用条件聚合
SELECT
count(case when posts.forum_type_id = '1' then 1 end) AS generalCount
,
count(case when posts.forum_type_id = '2' then 1 end) AS questionsCount
,
forum.id
FROM forum
group by forum.id
答案 1 :(得分:1)
group by
怎么样?
SELECT p.forum_type_id, COUNT(*)
FROM posts p
GROUP BY p.forum_type_id;
如果愿意,可以从论坛表中获取名称:
SELECT f.?, COUNT(*) -- use the column with the name you want
FROM posts p JOIN
forums f
ON p.forum_type_id = f.forum_type_id
GROUP BY p.?;
您可以将其旋转以将值放入列而不是行中,但这不是必需的。