1. 程式人生 > >內連線、左連線、左外連線、右連線的區別

內連線、左連線、左外連線、右連線的區別

一:測試例子

存在如下兩張表:年級與班級,表內容如下

班級表

二:內連線與自然連線

1:自然連線

對於select * from gradeclass gc where gc.grade_id in (select id from grade),其結果如下圖

其查詢是把符合條件中的班級表內容全部查詢出來

而對於下面的語句SELECT * from gradeclass gc inner join grade g on gc.grade_id=g.Id,在這裡inner可以省略。其結果是除了把符合條件的gradeclass表中的內容查詢出來外,還把grade表中的所有欄位也一併查詢出來,其結果如下

二:左連線(實際上就是左外連線)

其語句如下:select * from grade g rigth OUTER JOIN gradeclass g on g.grade_id=gc.Id(這裡的outer可以省略),它是除了把左邊表的所有資料都查詢出來,不管是否滿足條件,並且合併是右表的所有欄位,其結果如下