我一直在與一些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