我在這里對加入感到困惑假設我在這里有三個表學生表,課程表,教師表
“學生”表
std_Id std_Name course_Id teacher_Id
1 Amit 3 1
2 Yogesh 1 1
3 Pravin 3 2
4 Nilay 1 3
5 Abhijit 2 3
“課程”表
course_Id course_Name std_Id teacher_Id
1 JAVA 1 3
2 C# 1 3
3 C 3 1
4 SAP 2 2
5 PYTHON 2 1
6 JAVASCRIPT 3 2
“老師”表
teacher_Id teacher_Name std_Id course_Id
1 Roy 1 1
2 John 2 1
3 Ben 1 3
4 Renu 2 3
5 Ramesh 1 3
在這里我沒有給出任何參考鍵所以如何加入三個表我在這里給出查詢
select Std_Name,Course_Name,Teacher_Name
from Student
inner join Course
on ??????????????.??????_????=????????????.????????????_????
or ??????????????.????????????_????=????????????.??????_????
or ??????????????.????????????_????=????????????.????????????_????
or ??????????????.??????_????=????????????.??????_????
inner join Teacher
on ????????????.????????????_????=??????????????.??????????????_????
or ????????????.??????????????_????=??????????????.????????????_????
or ????????????.??????????????_????=??????????????.????????????_????
or ????????????.??????????????_????=??????????????.??????????????_????
如您所見,我在這里有三個表,所以現在我想查看有課程和老師的學生,所以讓我們在學生表中查找,我們有 std_id、course_id 和teacher_id,當然我想顯示有課程的學生課程他們應該在這里使用哪一列,因為在學生表中我們也有std_id和course_id,所以應該使用哪一個來加入學生表的課程表std_id或course_id,在課程表中我們也有course_id和std_id所以這里應該使用哪一列與學生表連接,我們還想顯示教師然后學生表也有教師 ID,課程表也有教師 ID,那么這里應該使用哪個表的列來顯示教師?
所以這里應該使用哪個條件來連接三個表,因為在這里你可以看到許多 id 從一個表指向另一個表,這就是為什么我無法理解這一點你知道如何加入這三個表并獲得輸出請幫助我有人我該如何解決這個問題,請讓我知道伙計們請給我答案,我已經在上面提到了我想在輸出中顯示的內容。
uj5u.com熱心網友回復:
您的問題可以使用一些格式,但據我了解,您想加入 3 個表格,看起來應該是這樣的:
select
s.Std_Name,
c.Course_Name,
t.Teacher_Name
from Student s
inner join Course c on c.Course_ID = s.Course_ID
inner join Teacher t on t.Course_ID = c.Course_ID
您應該開始使用別名 ( from Student t),因為它可以讓連接和參考表變得更加容易和快捷。
編輯:
像這樣考慮上面的查詢。AStudent參加一個(或多個)Courses課程,每門課程都有一個Teacher教授它的課程。Student現在 the和 the之間的共同點Course是Course_id,這就是我們加入它的原因s.Course_id = c.Course_id。現在,我們知道每個Course人都有一個Teacher教它的東西,所以它們之間的共同點也是Course_id,因此連接如下inner join t.Course_id = c.Course_id。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/531944.html
標籤:sqlsql服务器
上一篇:僅選擇每組sql的最大值
