Sql server 从ms sql server中的表中选择包含相关项计数的列

Sql server 从ms sql server中的表中选择包含相关项计数的列,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有表格结构,相册按类别排列,所以我们有顶级、第二级相册、照片和第三级的类别 我需要显示AlbumCategories的详细信息,以及该类别下的专辑名称和数量。如果我希望基于下面的虚拟数据得到以下结果,我如何查询 Sports(2) Education(3) TABLE AlbumCategories ACID Name 1 Sports 2 Education TABLE albums AID ACID Name 1 1

我有表格结构,相册按类别排列,所以我们有顶级、第二级相册、照片和第三级的类别

我需要显示AlbumCategories的详细信息,以及该类别下的专辑名称和数量。如果我希望基于下面的虚拟数据得到以下结果,我如何查询

Sports(2)
Education(3)


TABLE AlbumCategories
ACID    Name
1       Sports
2       Education


TABLE albums
AID     ACID    Name
1       1       Footbal season 2015
2       1       Footbal season 2016
3       2       Album one
4       2       Album Two
5       3       Album Three


TABLE albumsPhotos
PID     AID Image

只需一个简单的
JOIN
groupby

SELECT AC.ACID
     , MAX(AC.Name) as Name
     , COUNT(*) as Frequency FROM Album A
       INNER JOIN AlbumCategories AC ON A.ACID = AC.ACID
       GROUP BY AC.ACID
要获取所有类别(无论是否有相册),请使用此查询:

 SELECT AC.ACID
     , MAX(AC.Name) as Name
     , COUNT(*) as Frequency FROM AlbumCategories AC
       LEFT OUTER JOIN Album A ON A.ACID = AC.ACID
       GROUP BY AC.ACID

选择。。计数桌子联接表。。分组依据
education
计数不应该是
2
提示:
JOIN
<代码>分组依据。为什么会有(3)对于您的示例中的教育?不确定这个问题是如何获得选票的。您的查询中不应该用
AlbumCategories
代替
Sport
,因为没有运动表通过查询获取此库中的所有记录我只获取包含相册的记录,而不是所有记录categories@Learning,已使用处理该问题的替代方案进行更新。