sqlserver多表聯合查詢

sqlserver多表聯合查詢

新手第一篇文章,不足之處多多指教

例如:表A裏面存儲教師基本信息;表B存儲教師獲獎情況;表C存儲教師出書情況;表D存儲教師學術論文情況
現在需要查詢出教師基本信息以及另外三個表中關於該教師其他情況的記錄條數。
表A
ID WorkId Name BirthDay
表B
ID WorkId Reward
表C
ID WorkId Book
表D
ID WorkId Paper

select *, 0 AS NUM  from A WHERE A.WorkID='1234'
union all 
select A.*, COUNT(B.ID) AS NUM FROM A,B WHERE A.WorkId='1234'  AND A.WorkId=B.WorkId GROUP BY A.[ID] ,A.[WorkId],A.[Name],A.[Birthday]
union all 
select A.*, COUNT(C.ID) AS NUM FROM A,C WHERE A.WorkId='1234'  AND A.WorkId=C.WorkId GROUP BY A.[ID] ,A.[WorkId],A.[Name],A.[Birthday]
union all 
select A.*, COUNT(D.ID) AS NUM FROM A,D WHERE A.WorkId='1234'  AND A.WorkId=D.WorkId GROUP BY A.[ID] ,A.[WorkId],A.[Name],A.[Birthday]

GROUP BY 後面必須列出表A裏面所有列名
UNION ALL 使用注意:查詢出的列數必須相同

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章