SQL表連接查詢(inner join、full join、left join、right join)

SQL表連接查詢(inner join、full join、left join、right join)

 

前提條件:假設有兩個表,一個是學生表,一個是學生成績表。

 

 

 

 

 

 

表的數據有:

 

 

 

 

 

 

 

 

 




一、內連接-inner jion :

最常見的連接查詢可能是這樣,查出學生的名字和成績:

select s.name,m.mark from student s,mark m where s.id=m.studentid

上面就是我們最常見的inner join,即內連接,把符合student.id=mark.studentid 條件的元組才選出來,也可以寫成:

select s.name,m.mark from student s inner join mark m on s.id=m.studentid

符合條件的只有兩條結果,查出結果爲:

 

二、左連接-left join:

左連接是把左邊的表的元組全部選出來:

select s.name,m.mark from student s left join mark m on s.id=m.studentid

上面語句就是把左邊的表,即student表中的元組全部選出,儘管有些分數表是沒數據的,也選了出來,選出的結果爲:

 

三、右連接-right join:

右連接就是把右邊表的數據全部取出,不管左邊的表是否有匹配的數據:

select s.name,m.mark from student s right join mark m on s.id=m.studentid

上面的語句就是把mark分數表的數據全部取出來,不管student表中是否有數據匹配,如下圖所示:

 

四、全連接-full join:

把左右兩個表的數據都取出來,不管是否匹配:

select s.name,m.mark from student s full join mark m on s.id=m.studentid

如下圖所示,學生表和成績表的數據都取了出來:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章