Courses Teachers Students StudentCourses
CourseID TeacherID StudentID CourseID
CourseName TeacherName StudentName StudentID
TeacherID
你好,
這些都是我的表,我有兩個問題..加入表使用橋
- 我需要獲得所有學生的名單,有多少課程,每先後就讀於
- 所有參加課程的學生都以「藝術」開始。
我很困惑,因爲StudentCourses
表。先謝謝你!
1.
SELECT *
FROM Students s
INNER JOIN StudentCourses sc
ON s.StudentID = sc.StudentID
UNION
SELECT COUNT(courseID)
FROM StudentCourses dd
INNER JOIN Student ss
ON ss.studentID = dd.studentID
GROUP BY studentID
適用於這種情況下JOIN
?
2.
SELECT *
FROM Students s
JOIN StudentCourses sc
ON s.StudentID = sc.StudentID
JOIN Courses c
ON sc.COurseID = c.CourseID
WHERE CourseName = ‘Art%’
這是正確的嗎?
那麼,你有什麼嘗試? StudentCourses將學生鏈接到一門課程,因此您需要參加這個課程。 – OldProgrammer
StudentCourses表格用於強化學生和課程之間的多對多關係。 1名學生可以有很多課程,1門課程可以有很多學生。通過將關係拆分爲2個表格,您現在有1個student_course行匹配到一個學生行和1個課程行。你需要做的是寫一個加入學生,學生課程和課程表的查詢。然後,您可以根據需要修改該查詢來回答您的問題。如果您遇到問題,請編輯您的問題以顯示您迄今爲止所嘗試的內容,然後我們將爲您提供進一步的指導。 – Boneist
(事實上,對於你的第一個問題,你可能會逃避一起加入Students和StudentCourses表) – Boneist