每當相同的欄位中有相符的值時,合併來自兩個資料表的記錄。
語法
FROM table1 INNER JOIN table2 ON table1.field1compopr table2.field2
INNER JOIN 運算包含下列部分:
部分 |
描述 |
table1, table2 |
結合記錄的來源資料表名稱。 |
field1, field2 |
連接欄位的名稱。 若非數值,則欄位必須是相同的資料類型,且儲存相同類型的資料,但名稱不必相同。 |
compopr |
任何關聯性比較運算子:"="、"<"、">"、"<="、">=" 或 "<>"。 |
備註
您可以在任何 FROM 子句中使用 INNER JOIN 運算。 這是最常見的聯結類型。 每當兩個數據表共同的欄位中有相符的值時,內部聯結就會合併來自兩個數據表的記錄。
您可以在 [部門] 和 [員工] 資料表中,使用 INNER JOIN 來選取各個部門中的所有員工。 相反地,若要選取所有部門 (即使部分尚未指派任何員工) 或所有員工 (即使部分尚未指派至任何部門),您可以使用 LEFT JOIN 或 RIGHT JOIN 運算來建立外部聯結。
如果您嘗試加入含有備忘錄或是 OLE 物件資料的欄位,則會發生錯誤。
您可以聯結任兩種類型相似的數字欄位。 例如,您可以聯結 [AutoNumber] 和 [Long] 欄位,因為它們的類型相似。 不過,您不能聯結單精準數或雙精準數類型的欄位。
以下範例將顯示如何以 [CategoryID] 欄位聯結 [Categories] 和 [Products] 資料表:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products ON Categories.CategoryID = Products.CategoryID;
在上述範例中,聯結欄位是 [CategoryID],但因為它不在 SELECT 陳述式裡,所以並未包含在查詢輸出中。 若要納入聯結欄位,請在 SELECT 陳述式裡加入欄位名稱,也就是此範例中的 Categories.CategoryID。
您也可以使用下列語法,在 JOIN 陳述式中連接多個 ON 子句:
SELECT fields
FROM table1 INNER JOIN table2 ON table1.field1compoprtable2.field1 AND ON table1.field2compoprtable2.field2) OR ON table1.field3compoprtable2.field3)];您也可以使用下列語法來巢狀處理 JOIN 陳述式:
SELECT fields
FROM table1 INNER JOIN (table2 INNER JOIN [( ]table3 [INNER JOIN [( ]tablex [INNER JOIN ...)] ON table3.field3compoprtablex.fieldx)] ON table2.field2compoprtable3.field3) ON table1.field1compoprtable2.field2;LEFT JOIN 或 RIGHT JOIN 可以巢狀包含在 INNER JOIN 中,但 INNER JOIN 則無法巢狀包含在 LEFT JOIN 或 RIGHT JOIN 中。