SQL 选择主记录并显示每个主记录的详细记录数

标签 sql sql-server tsql

我有一个主表和详细信息表,详细信息链接到 FK 引用上的主记录。

我需要显示主表中的所有数据,以及每条记录对应的详细信息数,即

MASTER TABLE
ID Name  Age
1  John  15
2  Jane  14 
3  Joe   15

DETAIL
MasterID Subjects
1        Trigonometry
1        Chemistry
1        Physics
1        History
2        Trigonometry
2        Physics

因此,当我运行 SQL 语句时,我将得到以下结果:

ID Name Age #Subjects
1  John 15  4  
2  Jane 14  2
3  Joe  15  0

谢谢!

最佳答案

这可能有用

SELECT mt.ID, mt.NAME, mt.AGE, COUNT(d.MasterID) as [#Subjects]
FROM MasterTable mt
LEFT OUTER JOIN Detail d on mt.ID = d.ID
GROUP BY mt.ID, mt.NAME, mt.AGE
ORDER BY mt.ID

关于SQL 选择主记录并显示每个主记录的详细记录数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3991377/

相关文章:

sql - sqlite3选择同时引用另一列的列

sql - 与给定表或 View 有关系的所有表的列表

string - T-SQL将单词拆分为字符

sql - 从数字序列动态创建范围

tsql - SQL Reporting Services,过滤不在 DISTINCT SELECT 语句中的字段?

php - MySQL查询-即使相关表中不存在一个字段,也返回咨询

mysql - 从多对多关系的末端选择数据

mysql - SQL 财政季度总计...我已经有了日历的

python - 附加到 SQL 的列表结果

sql左连接加CASE查询