如果在 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 字段将“类别”表和“产品”表联接起来。 该查询会生成一个含所有类别的列表,包括那些不含任何产品的类别:
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 主题中有关链接字句的内容,了解如何链接字句。
如果尝试联接包含备注 Memo 或 OLE 对象数据的字段,就会出错。