我有一个Master和Detail表,详细信息链接到FK参考的主记录。
我需要显示Master表中的所有数据,以及每条记录的相应详细信息,即
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
谢谢!
答案 0 :(得分:10)
这可能很有用
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
答案 1 :(得分:8)
select id,
name,
age,
( select count(*)
from detail
where master.id = detail.id ) as record_count
from master
根据您使用的数据库调整语法