資料庫的四種連接方式分別是:1、inner join內連接;2、outer join外連接;3、cross join交叉連接;4、natural join自然連接。
# 內連接 ---拼接查詢結果內部有聯繫,使用內連接格式: [ inner] join ----inner可省
結果: 從左表中取出每一筆記錄,去右表中與所有的記錄進行比對; 比對必須是某個條件是左表中與右表相同,才會保留結果,否則不保留;
基本語法: 左表[inner] join 右表on 左表.欄位= 右表.欄位;
注意事項:
1、on 表示連結條件;條件欄位代表相同的業務意義(如stu.cid 和cla.id) 學生stu表中的班級cid 和班級cla表中的id
2、內連接可以沒有連接條件,沒有on之後的內容, 這時候系統會保留所有結果(笛卡爾集)
3、內連接可以使用where 代替on 通常不用where,因為where沒有on效率高on指匹配到第一條成功的就結束,其他不匹配; 若沒有,不進行匹配而where會一直匹配,進行判斷
4、通常使用字段別名表別名在查詢資料的時候,不同表有同名字段, 這時候需要加上表名才能區分, 而若表名太長,使用表別名若不想使用默認的欄位名可以透過[as] 設定欄位別名。
外連接--以某一張表為基底表進行相關查詢outer join
結果:以某張表為主,取出裡面的所有記錄, 然後每條與另外一張表進行連接, 不管能不能匹配上條件,最終都會保留, 能匹配,正確保留; 不能匹配其他表的字段都置空null
分類:分為兩種左連接,右連接left join 左外連接---左連接,以左表為主right join 右外連接---右連接,以右表為主
基本語法: 左表left/right join 右表on 左表.欄位= 右表.欄位;------條件必須有
交叉連接 連接查詢cross join:
交叉連接不帶WHERE 子句,它會傳回被連接的兩個表所有資料行的笛卡爾積,
傳回到結果集合中的資料行數等於第一個表中符合查詢條件的資料行數乘以第二個表中符合查詢條件的資料行數。
自然連接 natural join 自然連接
就是系統自動匹配連接條件系統以字段名字作為匹配模式(同名字段作為字段,多個同名欄位都作為條件)
自然連接:可以分為自然內連接和自然外連接內連接natural left join 自然左外連接
其實:內連接和外連接都可以模擬自然連接,
使用同名字段,合併字段左表left/ right inner join 右表on using(字段名) -----使用同名字段,合併字段
# --自然內連接select * from stu natural join cla;
-自然左外連接select * from stu natural left join cla;
--外連接模擬自然左外連接select * from stu left join cla using(id);
#
以上是資料庫的四種連接方式分別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!