首頁 >資料庫 >SQL >如何區分左外連接,右外連接和全外連接?

如何區分左外連接,右外連接和全外連接?

青灯夜游
青灯夜游原創
2020-07-21 15:05:0414016瀏覽

左外連接會傳回包含左表中的所有記錄和右表中連接欄位相等的記錄;右表沒資料則為null。右外連接會傳回包含右表中的所有記錄和左表中連接欄位相等的記錄;左表沒資料則為null。全外連接會傳回左右表中所有的記錄和左右表中連接欄位相等的記錄。

如何區分左外連接,右外連接和全外連接?

在sql中l外連接包括左連接(left join )和右連接(right join),全外連接(full join)。

  • 左外連接(左連接):傳回包含左表中的所有記錄和右表中連接欄位相等的記錄。

  • 右外連接(右連接):傳回包含右表中的所有記錄和左表中連接欄位相等的記錄。

  • 全外連接:傳回左右表中所有的記錄和左右表中連接欄位相等的記錄。

先放兩個表  一個學生表;一個成績表

如何區分左外連接,右外連接和全外連接?

如何區分左外連接,右外連接和全外連接?

左外連接

將傳回右表的所有行。如果左表的某行在右表中沒有符合行,則會為右表傳回空值左連接:select *from Student  LEFT JOIN Score ON Student.s_id=Score.s_id

以左表為主表,右表沒資料為null

如何區分左外連接,右外連接和全外連接?

右外連接

將傳回右表的所有行。如果右表的某行在左表中沒有符合行,則將為左表傳回空值;

以右表為主表,左表中沒資料的為null

select *from Student right JOIN Score ON Student.s_id=Score.s_id

如何區分左外連接,右外連接和全外連接?

全外連接(FULL  JOIN 或FULL OUTER JOIN)

完整外部聯結傳回左表和右表中的所有行。當某行在另一個表中沒有符合行時,則另一個表的選擇清單列包含空值。如果表之間有匹配行,則整個結果集行包含基底表的資料值。

select *from Student full  JOIN Score ON Student.s_id=Score.s_id
select *from Student full outer JOIN Score ON Student.s_id=Score.s_id

如何區分左外連接,右外連接和全外連接?

相關推薦:《SQL教學

以上是如何區分左外連接,右外連接和全外連接?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

相關文章

看更多