[英]How to query for many to many relationship in Sql Server
我的問題是如何獲取特定學生ID的課程名稱
我試過了但是沒用
select Course.CourseName from Course
where Course.CourseId in (
select Student.studentname ,StudentCourse.CourseId from Student inner join StudentCourse
on Student.StudentId = StudentCourse.StudentId
where Student.StudentId = 1)
您可能會忘記我的查詢,因為我是SQL Server的新手,只要告訴我開發人員在SQL Server真實世界中究竟做了什么,以獲取特定學生的課程名稱
如您所說,您想知道這種方法,這只是基本觀點
1)我們想看看CourseName。
SELECT CourseName FROM Course
2)一個學生可能有多個課程。 3)因此,我們還有一個表StudentCourse可以實現這一目標。 4)我們必須在此表中查找CourseName的ID
SELECT CourseID FROM StudentCourse
5)查找哪個學生(X是您想要的數字)參加這些課程。
WHERE StudentID = X
6)如果我們將它們放在一起看,我們現在可以通過步驟1獲得所有的CourseName。但是,我們不需要所有的CourseName,而擁有所有X編號的學生需要的CourseID。 因此,如果我們將它們組合在一起,現在我們只需選擇X接受的CourseName。
WHERE CourseID IN
7)所以我們的最終結果是
SELECT CourseName FROM Course WHERE CourseID IN
(SELECT CourseID FROM StudentCourse WHERE StudentID = X)
我正在使用左聯接,以防萬一您的學生沒有分配任何課程,否則,如果使用內聯接,您將不會獲得任何結果;
SELECT
s.StudentID
,s.StudentNam
,sc.CourseID
,c.CourseName
FROM Student s
LEFT JOIN StudentCourse sc
ON s.StudentID = sc.StudentID
LEFT JOIN Course c
ON sc.CourseID = c.CourseID
WHERE s.StudentID = 1
嘗試這個:
select CourseName from Course
where CourseId in
(select CourseId from StudentCourse
where StudentId = 1)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.