当通用字段中存在匹配值时从两个表中合并记录。
语法
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 操作以创建外部联接。
如果尝试联接包含 Memo 或 OLE 对象数据的字段,则会出错。
可以联接 like 类型的任何两个数值字段。 例如,可以联接 AutoNumber 和 Long 字段,因为它们为 like 类型。 但是,无法联接 Single 和 Double 类型的字段。
以下示例显示如何在 CategoryID 字段上联接“类别”和“产品”表:
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 中。