在用於任何 FROM 子句中時,合併來源資料表記錄。
語法
FROM table1 [ LEFT | RIGHT ] JOIN table2
ON table1.field1compopr table2.field2LEFT JOIN 和 RIGHT JOIN 運算由下列各部分組成:
部分 |
描述 |
table1, table2 |
結合記錄的來源資料表名稱。 |
field1, field2 |
連接欄位的名稱。 欄位必須有相同資料類型且含有相同種類的資料,但是不必有相同名稱。 |
compopr |
任何關聯性比較運算子:"="、"<"、">"、"<="、">=" 或 "<>"。 |
備註
使用 LEFT JOIN 運算建立左方外部聯結。 左方外部聯結包含來自兩個資料表的第一個 (左方) 的所有記錄,即使第二個 (右方) 資料表中的記錄沒有相符的值。
使用 RIGHT JOIN 運算建立右方外部聯結。 右方外部聯結包含來自兩個資料表的第二個 (右方) 的所有記錄,即使第一個 (左方) 資料表中的記錄沒有相符的值。
例如,您可以在 [部門] (左方) 和 [員工] (右方) 資料表中使用 LEFT JOIN 以選取所有部門,包括未獲派員工的部門。 若要選取所有員工 (包括未指派給部門的員工),則使用 RIGHT JOIN。
下列範例顯示如何以 [CategoryID] 欄位聯結 [Categories] 和 [Products] 資料表。 查詢會產生所有類別的清單,包括沒有包含產品的類別:
SELECT CategoryName, ProductName FROM Categories LEFT JOIN Products ON Categories.CategoryID = Products.CategoryID;
在此範例中,聯結欄位是 [CategoryID],但因為它不在 SELECT 陳述式中,所以並未包含在查詢結果中。 若要包含聯結欄位,請在 SELECT 陳述式中輸入欄位名稱,也就是此範例中的 Categories.CategoryID。
若要建立只包含聯結欄位中資料相同的記錄之查詢,請使用 INNER JOIN 運算。
-
LEFT JOIN 或 RIGHT JOIN 能以巢狀方式置於 INNER JOIN 中,但 INNER JOIN 則無法以巢狀方式置於 LEFT JOIN 或 RIGHT JOIN 中。 請參閱 INNER JOIN 主題中的巢狀包含相關探討,了解如何在其他聯結內巢狀聯結。
-
您可以連結多個 ON 子句。 請參閱 INNER JOIN 主題中的子句連結相關探討,了解其做法。
如果您嘗試聯結含有 [備忘] 或 [OLE 物件] 資料的欄位,則會發生錯誤。