根据这3个表生成标签云计数

时间:2009-09-22 03:04:47

标签: sql tags

我有这三个表来存储相册的标签。这是架构

表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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

Select Tag_Name, COUNT(AlbumTagBridge.ID)
From AlbumTags
Join AlbumTagBridge USING(Tag_ID)
Group By Tag_Name

AlbumTags.Tag_ID, Tag_name进行分组可能会稍微便宜一些,具体取决于你的索引和c(特别是如果你的SQL引擎不是那么聪明;-),但是因为你没告诉我们你的指数也没关系你的引擎这是我们能做的最好的事情。