我在stackoverflow本身看到這個問題,但我覺得這個問題沒有得到滿意的答案。我將在這裏複製粘貼相同的問題,併成爲數據庫中的新手,這對我非常有幫助,更重要的是,我有一個initerview將於下週出現。數據庫設計
數據庫設計
第1部分:你是設計一個架構(一些表),其中一名學生將有ID,名稱;一個課程將有id,名字;時間表將有空間ID,開始時間;一個房間會有身份證,位置和容量。第二部分:你要寫下列查詢a。返回所有學生的列表以及他們每個人的課程數量?從最高到最低的順序。
我在stackoverflow本身看到這個問題,但我覺得這個問題沒有得到滿意的答案。我將在這裏複製粘貼相同的問題,併成爲數據庫中的新手,這對我非常有幫助,更重要的是,我有一個initerview將於下週出現。數據庫設計
數據庫設計
第1部分:你是設計一個架構(一些表),其中一名學生將有ID,名稱;一個課程將有id,名字;時間表將有空間ID,開始時間;一個房間會有身份證,位置和容量。第二部分:你要寫下列查詢a。返回所有學生的列表以及他們每個人的課程數量?從最高到最低的順序。
由於第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
假設:學生不能參加課程的兩倍。
鑑於您要求我們編寫的查詢不可能從您建議的模式中獲得,因此不難理解爲什麼原始問題可能沒有按照您的希望得到答案。
課程和學生之間沒有任何關係,所以你怎麼知道一個學生有多少課程?
你能做的就是滿足請求的第一部分,並將所有的學生名單的最好:對SO
SELECT * FROM students
哪些問題?爲什麼它不令人滿意? –