我一直在与一些SQL进行对抗,似乎无法摆脱困境。在MySQL中计算属于某个类别的记录
我有两张表,一张带有类别列表,另一张带有我的所有文章。
我想要做的是找到每个类别有多少篇文章。
这里是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)
我用剩下的就是只得到的主要类别为我列出类别披露如下...例如
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)
附:感谢@nullpointer,它的工作原理就目前而言,我会考虑重组 其他读者继承人的链接再次
http://mikehillyer.com/articles/managing-hierarchical-data-in-mysql/
您是否尝试过使用post_Cat_ID分组? – DrColossos 2010-09-04 13:40:56
顺便说一下,子类别的处理看起来相当复杂和低效... – DrColossos 2010-09-04 13:41:35
是工作感谢 – Stevanicus 2010-09-04 14:17:07