文档库 最新最全的文档下载
当前位置:文档库 › 关联查询、子查询

关联查询、子查询

关联查询、子查询
关联查询、子查询

联接查询及子查询

LEFT JOIN 和RIGHT JOIN 运算

用于FROM子句时,把源表记录组合起来。

语法

FROM表1 [ LEFT | RIGHT ] JOIN表2

ON 表1.字段1compopr 表2. 字段2

LEFT JOIN 及RIGHT JOIN 运算可分为以下几个部分:

table1, table2记录被组合的表的名称。

field1, field2被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。

compopr任何的关系比较运算子:"=," "<," ">," "<=," ">=," 或"<>."

说明

用LEFT JOIN 运算创建左边外部联接.左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即使在第二个(右边)表中并没有相符值的记录。

用RIGHT JOIN 运算创建右边外部联接.右边外部联接将包含了从第二个(右边)开始的两个表中的全部记录,即使在第一个(左边)表中并没有匹配值的记录。

例如,可以使用LEFT JOIN 与部门(左边)及员工(右边)表来选择所有的部门,包含了没有分配到员工的部门。可以使用RIGHT JOIN 选择所有的员工,包含了没有分配到部门的员工。

下列示例显示如何在类标识符字段中联接类表及产品表。查询将会列出所有种类的列表,包含那些没有产品在其中的种类:

SELECT CategoryName,

ProductName

FROM Categories LEFT JOIN Products

ON Categories.CategoryID = Products.CategoryID;

在本例中,CategoryID 是联接的字段,但由于它不包含在SELECT语句中,因此,也不包含在查询结果中。要包含联接的字段,请在SELECT 语句中输入字段名—在这个示例中为

Categories.CategoryID。

INNER JOIN 运算

组合两个表中的记录,只要在公共字段之中有相符的值。

语法

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运算创建outer join,从而选择所有部门(即使有些并没有员工)或所有员工(即使有些尚未分配到部门)。

相关文档