1. 程式人生 > >資料庫之自身連線與外連線

資料庫之自身連線與外連線

假設有一個數據表為Course:

Cno為課程號,Cname為課程名,CPno為上這門課程之前必須學習的的課程號:

查詢每一門課的間接先修課(即先修課的先修課)。

SELECT  A.Cno, A.Cname, B.Cpno

FROM  Course  A, Course  B

WHERE  A.Cpno =B.Cno;

自身連線:自己的表格與自己的表格連線:設為Course A  與Course B就行了,用來做區分的:



外連線:

假設有這樣的兩個表格:Student與 SC表  Student為所有的學生,而SC表為學生的選課表,我們可以知道王敏和張力沒有選課,當使用Student.Sno=Sc.Sno的條件時,我們會發現無法出現王敏和張立的資訊

例如我們使用這樣的查詢語句:



只會出現這樣的表格,完全沒有王敏和張立的資訊了:

所以此時我們可以這樣使用:

SELECT Student.Sno, Sname, Ssex, Sdept, Cno, Grade
FROM Student
LEFT JOIN SC ON
Student.Sno= SC.Sno;

就會出現這樣的情況:

即使就算王敏和張立沒有選課,也會出現她們的資訊來: