組合兩個(gè)表中的記錄,只要在公共字段之中有相符的值。
FROM table1 INNER JOIN table2 ON table1.field1 compopr table2.field2
INNER JOIN 運(yùn)算可分為以下幾個(gè)部分:
部分 |
說(shuō)明 |
table1, table2 |
記錄被組合的表的名稱(chēng)。 |
field1, field2 |
被聯(lián)接的字段的名稱(chēng)。若它們不是由數(shù)字構(gòu)成的,則這些字段必須為相同的數(shù)據(jù)類(lèi)型并包含同類(lèi)數(shù)據(jù),但它們無(wú)須具有相同的名稱(chēng)。 |
compopr |
任何的關(guān)系比較運(yùn)算子:"=," "<," ">," "<=," ">=," 或 "<>." |
可以在 FROM 子句中使用INNER JOIN運(yùn)算。.這是最普通的聯(lián)接類(lèi)型。只要在這兩個(gè)表的公共字段之中有相符值,內(nèi)部聯(lián)接將組合兩個(gè)表中的記錄。
可以使用 INNER JOIN 與部門(mén)表及員工表選擇每一個(gè)部門(mén)中的全部員工。反之,可以使用 LEFT JOIN或 RIGHT JOIN運(yùn)算創(chuàng)建 outer join,從而選擇所有部門(mén)(即使有些并沒(méi)有員工)或所有員工(即使有些尚未分配到部門(mén))。
若試圖聯(lián)接包含 Memo或 OLE Object數(shù)據(jù)的字段,會(huì)導(dǎo)致錯(cuò)誤。
可以聯(lián)接任何兩個(gè)相同類(lèi)型的數(shù)值字段。例如,可以聯(lián)接 AutoNumber和 Long字段,因?yàn)樗鼈冾?lèi)型相似。但不能聯(lián)接 Single 和 Double 類(lèi)型的字段。
下列示例顯示如何在類(lèi)標(biāo)識(shí)符字段聯(lián)接類(lèi)表及產(chǎn)品表:
SELECT CategoryName, ProductName
FROM Categories INNER JOIN Products
ON Categories.CategoryID = Products.CategoryID;
在上面的示例中,類(lèi)標(biāo)識(shí)符是已被聯(lián)接的字段,但是它并不包含在查詢(xún)輸出中,因它并非被包含在 SELECT 語(yǔ)句之中。在這個(gè)示例中,若要包含聯(lián)接字段,將字段名包含在 SELECT 語(yǔ)句中, Categories.CategoryID.
也可以使用下列語(yǔ)法,在一個(gè) JOIN 語(yǔ)句中鏈接多個(gè) ON 子句:
SELECT fields
FROM table1 INNER JOIN table2
ON table1.field1 compopr table2.field1 AND
ON table1.field2 compopr table2.field2) OR
ON table1.field3 compopr table2.field3)];
也可以使用下列語(yǔ)法,嵌套 JOIN 語(yǔ)句:
SELECT fields
FROM table1 INNER JOIN
(table2 INNER JOIN [( ]table3
[INNER JOIN [( ]tablex [INNER JOIN ...)]
ON table3.field3 compopr tablex.fieldx)]
ON table2.field2 compopr table3.field3)
ON table1.field1 compopr table2.field2;
在一個(gè) INNER JOIN 之中,可以嵌套 LEFT JOIN 或 RIGHT JOIN,但是在 LEFT JOIN 或 RIGHT JOIN 中不能嵌套 INNER JOIN。
|