(一)內連接
SQL INNER JOIN 關鍵字
在表中存在至少一個匹配時,INNER JOIN 關鍵字返回行。
內連接查詢操作列出與連接條件匹配的數據行,它使用比較運算符比較被連接列的
列值。內連接分三種:
1、等值連接:在連接條件中使用等於號(=)運算符比較被連接列的列值,其查詢結
果中列出被連接表中的所有列,包括其中的重復列。
語法
代碼如下 復制代碼 SELECT column_name(s)注釋:INNER JOIN 與 JOIN 是相同的
例,下面使用等值連接列出authors和publishers表中位於同一城市的作者和出版社:
代碼如下 復制代碼 SELECT *
2、不等連接: 在連接條件使用除等於運算符以外的其它比較運算符比較被連接的
列的列值。這些運算符包括>、>=、<=、<、!>、!<和<>。
3、自然連接:在連接條件中使用等於(=)運算符比較被連接列的列值,但它使用選
擇列表指出查詢結果集合中所包括的列,並刪除連接表中的重復列。
例,在選擇列表中刪除authors 和publishers 表中重復列(city和state):
(二) 外連接
LEFT JOIN 關鍵字會從左表 (table_name1) 那裡返回所有的行,即使在右表 (table_name2) 中沒有匹配的行。
外連接,返回到查詢結果集合中的不僅包含符合連接條件的行,而且還包括左表(左
外連接或左連接))、右表(右外連接或右連接)或兩個邊接表(全外連接)中的所有數據行。
left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄;
right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄;
LEFT JOIN 關鍵字語法
代碼如下 復制代碼 SELECT column_name(s)注釋:在某些數據庫中, LEFT JOIN 稱為 LEFT OUTER JOIN。
例如1:
代碼如下 復制代碼 SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
例如2:
(三) 交叉連接
交叉連接不帶WHERE 子句,它返回被連接的兩個表所有數據行的笛卡爾積,返回到
結果集合中的數據行數等於第一個表中符合查詢條件的數據行數乘以第二個表中符合查
詢條件的數據行數。例,titles表中有6類圖書,而publishers表中有8家出版社,則下
列交叉連接檢索到的記錄數將等於6*8=48行。
例如:
SQL JOIN - 使用 Join
除了上面的方法,我們也可以使用關鍵詞 JOIN 來從兩個表中獲取數據。
如果我們希望列出所有人的定購,可以使用下面的 SELECT 語句:
代碼如下 復制代碼 SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo