我一直在与一些 SQL 作斗争,但似乎无法理解它。
我有两张表,一张是类别列表,另一张是我的所有文章。
我想要做的是找出每个类别有多少文章。
这是我到目前为止的SQL
SELECT DISTINCT COUNT( po.post_Cat_ID ) AS Occurances, ca.cat_Title
FROM Posts po, Categories ca
WHERE ca.cat_ID = LEFT( po.post_Cat_ID, 2 )
我使用 LEFT 的原因是只获取主要类别,因为我列出了以下类别......例如
Science = 01
Medicine = 0101
Sport = 02
因此,说 asprin 上的帖子的 cat_ID 为 0101。(LEFT 会将 0101、0102、0103 等修剪为仅 01)。基本上我对子类别不感兴趣。
提前致谢
结果
SELECT DISTINCT COUNT( po.post_Cat_ID ) AS Occurances, ca.cat_Title
FROM Posts po, Categories ca
WHERE ca.cat_ID = LEFT( po.post_Cat_ID, 2 )
GROUP BY LEFT( po.post_Cat_ID, 2 )
ps感谢@nullpointer,它目前有效,我会为其他读者考虑重组,再次链接
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/