注:本文以oracle資料庫為例,所用sql標準為oracle專用,而不是sql99規則!
首先我們建立兩個新錶tb_stu和tb_course(本文只是為了講述本質,因此**結構和資料從簡)
tb_stu(學生表)
tb_course(選課表)
可以看到tb_stu表中id為3的學生在tb_course中沒有對應的資料,tb_course表中stu_id為4的學生也不存在於tb_stu中。
內連線查詢:只能查詢出符合條件的記錄,只會顯示兩個表中都有的資料,系統會自動忽略兩個表中對應不起來的資料。
可以看到,資料只顯示了id為1、2的學生基本資訊和選課資訊,學生3和4的資訊並沒有顯示,所以內連線只顯示所有有關聯的資料。
外連線查詢:既能查詢出符合條件的記錄,也能根據一方強行將另乙個方查詢出來
在sql99規則中,我們利用inner join、left join、right join來表示內連線、左外連線和右外連線,而在oracle中我們利用(+)表示外連線。在講左、右連線之前,首先清楚乙個主副表的概念,即當兩個表做外連線時,乙個表為主表,乙個表為副表,主表需要全部查詢出來,副表需要(+)。
我們可以看到,結果顯示的資料中包含左表(即tb_stu)中的所有資料,右表中多的資料沒有顯示,少的資料顯示為null(圖中沒有顯示為null是因為我在定義表結構時設定為不能為空,)
我們可以看到,結果顯示的資料中包含右表中所有的資料,而左表中多的資料沒有顯示。
注:本文中的左右表為等號的左右。
連表查詢(內連線,左外連線,右外連線)
用兩個表 a table b table 關聯欄位a table.a id和b table.b id來演示一下mysql的內連線 外連線 左 外 連線 右 外 連線 全 外 連線 mysql版本 server version 5.6.31 mysql community server gpl 資料庫...
SQL的內連線 左外連線 右外連線以及交叉連線
以下是我對sql的內連線 左外連線 右外連線以及交叉連線的一些理解,希望能幫助到一些人,也歡迎指正錯誤。假設有兩張表 a表和b表 a表中的aid與b表中的bid關聯 內連線 select from a join b on a.aid b.bid 或者 select from a,b where a....
SQL 內連線,外連線(左外連線 右外連線)
參考整理筆記 關鍵字 inner join on 語句 select from a table a inner join b table bon a.a id b.b id 執行結果 說明 組合兩個表中的記錄,返回關聯字段相符的記錄,也就是返回兩個表的交集 陰影 部分。關鍵字 left join o...