我有這三個表來存儲相冊的標籤。這裏是模式給出這3個表生成標籤雲計數
表1:相冊
Album_ID
ALBUM_NAME
表2:AlbumTags
TAG_ID
TAG_NAME
表3:AlbumTagBridge
ID
TAG_ID
Album_ID
什麼是最有效的SQL要能拿出一個結果集,看起來像這樣:
TAG_NAME |計數
標籤1 | 19
標籤2 | 3
標籤3 | 17
我有這三個表來存儲相冊的標籤。這裏是模式給出這3個表生成標籤雲計數
表1:相冊
Album_ID
ALBUM_NAME
表2:AlbumTags
TAG_ID
TAG_NAME
表3:AlbumTagBridge
ID
TAG_ID
Album_ID
什麼是最有效的SQL要能拿出一個結果集,看起來像這樣:
TAG_NAME |計數
標籤1 | 19
標籤2 | 3
標籤3 | 17
SELECT dbo.AlbumTags.Tag_Name,
COUNT(dbo.AlbumTagBridge.Tag_Id) AS Cnt
FROM dbo.AlbumTagBridge
INNER JOIN dbo.AlbumTags ON dbo.AlbumTagBridge.Tag_Id = dbo.AlbumTags.Tag_ID
GROUP BY dbo.AlbumTags.Tag_Name
Select Tag_Name, COUNT(AlbumTagBridge.ID)
From AlbumTags
Join AlbumTagBridge USING(Tag_ID)
Group By Tag_Name
分組由AlbumTags.Tag_ID, Tag_name
有可能會是一點點便宜取決於你的索引& C(特別是如果你的SQL引擎是不是所有的聰明;-),但因爲你告訴我們任何關於你的指數也無法左右你的引擎是關於我們能做的最好的。
我假設你不關心專輯,但只是標記統計他們所有。 – 2009-09-22 03:18:56