區別:內連接查詢操作列出與連接條件相符的資料行;外連接,返回查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接) 、右表(右外連接)或兩個邊接表(全外連接)中的所有資料行。
兩個表的連接,是透過將一個表中的一列或多列同另一個表中的列連結而建立起來的。用來連接兩張表的表達式組成了連接條件。當連接成功後,第二張表中的資料就同第一張表連接起來了,並形成了複合結果集--包括兩張表中資料行的計畫。簡單來說,就是兩張表有了子集,雖然只是暫時的
有兩者基本類型的連接,inner和outer連接。兩種類型的主要區別在於,即使在連接條件不滿足的情況下,外部連接也會在結果集內返回行,而內部連接不會在結果集合中返回行
當外部連線不符合連線條件時,通常會傳回一個表格中的資料列,但第二個表格中沒有回傳值--為null
(一)內連接
內連接查詢操作列出與連接條件相符的資料行,它使用比較運算子比較被連接列的列值。內連接分為三種:
1、等值連接:在連接條件中使用等於號(=)運算子比較被連接列的列值,其查詢結果中列出連接表中的所有列,包括其中的重複列。
2、不等連接: 在連接條件使用除等於運算子以外的其它比較運算子比較被連接的 列的列值。這些運算子包括>、>=、<=、<、!>、!<和<>。
3、自然連接:在連接條件中使用等於(=)運算子比較被連接列的列值,但它使用選擇清單指出查詢結果集合中所包含的列,並刪除連接表中的重複列。
(二) 外連接
外連接,返回到查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表(左外連接或左連接))、右表(右外連接或右連接)或兩個邊接表(全外連接)中的所有資料行。
left join(左聯接) 傳回包含左表中的所有記錄和右表中連結欄位相等的記錄;
right join(右聯接) 傳回包含右表中的所有記錄和左表中聯結字段相等的記錄;
例如1:
SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b ON a.username=b.username
例如2:
SELECT a.*,b.* FROM city as a FULL OUTER JOIN user as b ON a.username=b.username
更多程式相關知識,請造訪:程式學習! !
以上是內連接和外連接的差別是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!