LEFT JOIN 和 RIGHT JOIN 運算
用于 FROM 子句時,把源表記錄組合起來。
語法
FROM表1 [ LEFT | RIGHT ] JOIN表2
ON 表1.字段1 compopr 表2. 字段2
LEFT JOIN 及 RIGHT JOIN 運算可分為以下幾個部分:
部分 說明
table1, table2 記錄被組合的表的名稱。
field1, field2 被聯(lián)接的字段的名稱。且這些字段必須有相同的數(shù)據(jù)類型及包含相同類型的數(shù)據(jù),但它們不需要有相同的名稱。
compopr 任何的關系比較運算子:"=," "<," ">," "<=," ">=," 或 "<>."
說明
用 LEFT JOIN 運算 創(chuàng)建左邊外部聯(lián)接.左邊外部聯(lián)接將包含了從第一個(左邊)開始的兩個表中的全部記錄,即使在第二個(右邊)表中并沒有相符值的記錄。
用RIGHT JOIN 運算 創(chuàng)建 右邊外部聯(lián)接.右邊外部聯(lián)接將包含了從第二個(右邊)開始的兩個表中的全部記錄,即使在第一個(左邊)表中并沒有匹配值的記錄。
例如,可以使用 LEFT JOIN 與部門(左邊)及員工(右邊)表來選擇所有的部門,包含了沒有分配到員工的部門?梢允褂 RIGHT JOIN 選擇所有的員工,包含了沒有分配到部門的員工。
下列示例顯示如何在類標識符字段中聯(lián)接類表及產(chǎn)品表。查詢將會列出所有種類的列表,包含那些沒有產(chǎn)品在其中的種類:
SELECT CategoryName,
ProductName
FROM Categories LEFT JOIN Products
ON Categories.CategoryID = Products.CategoryID;
在本例中,CategoryID 是聯(lián)接的字段,但由于它不包含在 SELECT 語句中,因此,也不包含在查詢結果中。要包含聯(lián)接的字段,請在 SELECT 語句中輸入字段名 — 在這個示例中為 Categories.CategoryID。
注意
欲創(chuàng)建只包含聯(lián)接字段中數(shù)據(jù)相同的記錄的查詢,請用 INNER JOIN 運算。
-在 INNER JOIN 之中可以寫一個嵌套的 LEFT JOIN 或一個 RIGHT JOIN,但是在一個 LEFT JOIN 或一-個 RIGHT JOIN 之中不能寫嵌套的 INNER JOIN。請參閱 INNER JOIN 主題中有關使用嵌套的討論,從-其中可獲知如何在其它聯(lián)接中編寫嵌套聯(lián)接的信息。
-可以鏈接多個 ON 子句。
-若試圖聯(lián)接包含 Memo或 OLE Object數(shù)據(jù)的字段,會導致錯誤。