3.3.2 创建连接
在概念上,任何连接的第一阶段是创建笛卡尔积,要改进或限制此笛卡尔积并除去数据行
的无意义组合,在 SELECT 语句的 WHERE 子句中包括有效的连接条件。
本节说明了跨连接、等值连接、自然连接和多表连接。其他复杂构成(如自连接和外链接)
在编写高级 SELECT 语句中讨论。
跨连接
跨连接组合所有选择的表中的所有行并创建笛卡尔积。跨连接的结果可能会非常大并且难
于管理。
下列查询使用 ANSI 连接语法创建跨连接。
图: 查询
SELECT * FROM customer CROSS JOIN state;
该查询的结果与图 1的结果完全相同。另外,可能通过指定 WHERE 子句来过滤跨连接。
有关笛卡尔积的更多信息,请参阅创建笛卡尔积。有关 ANSI 语法的更多信息,请参阅ANSI
连接语法。
等值连接
等值连接是基于相等或匹配列值的连接。在 WHERE 子句中,使用作为比较运算符的等号
(=)来表示这一相等关系。如下所示。
图: 查询
该查询在 manu_code 列上连接 manufact 和 stock 表。它只检索两个列的值相等的那些行。
以下结果显示了一些这样的行。