2016-06-13 68 views
1

我有下面的表格,其中課程由許多事件組成。我想知道某個課程有多少活動。如何查詢數據以查看單個行具有多少個連接?

SQL Server是2014年

COURSE 
| ID | NAME | 
| 1 | Course 1| 

COURSE_EVENT 
| ID | COURSE_ID | EVENT_NAME | 
| 1 | 1   | Introduction to Javascript | 
| 2 | 1   | Introduction to Angularjs | 
| 3 | 1   | Introduction to Angularjs2 | 

我有下面的查詢:

SELECT 
    COUNT(*) 
FROM 
    COURSE_EVENT 
WHERE 
    COURSE_ID IN (SELECT ID FROM COURSE) 

但它僅返回一行。我想看到的是以下內容:

| COURSE_ID | EVENT_AMOUNT | 
|1   | 3   | 

我是一種SQL中的noob。在我編寫一個foreach之前(我覺得這將是過度工程)之前,我問社區。

+1

你正在尋找的話就是'GROUP BY'。閱讀:http://www.sqlservercentral.com/articles/Stairway+Series/75779/。哎呀,閱讀整個系列。 –

+0

@sayusiando,檢查我的帖子以解決您的查詢.. –

回答

0

您可以使用下面的查詢:

SELECT C.NAME, COUNT(CE.ID) 
FROM COURSE C INNER JOIN COURSE_EVENT CE 
ON C.ID = CE.COURSE_ID 
GROUP BY C.NAME 
0

如果是一個FK則ID必須在課程

SELECT COURSE_ID, COUNT(*) as count 
FROM COURSE_EVENT 
GROUP BY COURSE_ID 
相關問題