2011-06-18 262 views
-4

我在stackoverflow本身看到這個問題,但我覺得這個問題沒有得到滿意的答案。我將在這裏複製粘貼相同的問題,併成爲數據庫中的新手,這對我非常有幫助,更重要的是,我有一個initerview將於下週出現。數據庫設計

數據庫設計

第1部分:你是設計一個架構(一些表),其中一名學生將有ID,名稱;一個課程將有id,名字;時間表將有空間ID,開始時間;一個房間會有身份證,位置和容量。第二部分:你要寫下列查詢a。返回所有學生的列表以及他們每個人的課程數量?從最高到最低的順序。

+1

哪些問題?爲什麼它不令人滿意? –

回答

2

由於第1部分中的原始「規格」列出了比實際需要統計第2部分更多的表格,我忽略了不需要的表格。

1部分:數據庫架構

Course (Id, Name) 
CourseStudent(CourseId, StudentId) <-- New many-to-many link table 
Student (Id, Name) 

第2部分:

SELECT 
s.Id, s.Name, COUNT(*) 
FROM Student s 
INNER JOIN CourseStudent cs on cs.StudentID 
GROUP BY s.Id, s.Name 
ORDER BY COUNT(*) DESC 

假設:學生不能參加課程的兩倍。

0

鑑於您要求我們編寫的查詢不可能從您建議的模式中獲得,因此不難理解爲什麼原始問題可能沒有按照您的希望得到答案。

課程和學生之間沒有任何關係,所以你怎麼知道一個學生有多少課程?

你能做的就是滿足請求的第一部分,並將所有的學生名單的最好:對SO

SELECT * FROM students