Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

连接:从多个表检索数据

自然连接


在您指定自然连接时,Adaptive Server Anywhere 基于具有相同名称的列生成连接条件。因此,要使用基表的自然连接,必须至少有一对具有相同名称的列,每个表一列。如果没有公用列名称,将发出错误消息。

如果表 A 和表 B 具有一个共同的列名称,并且该列称作 x,则

SELECT *
FROM A NATURAL JOIN B

等效于以下语句:

SELECT *
FROM A JOIN B
 ON A.x = B.x

如果表 A 和表 B 具有两个共同的列名称,并且它们分别称作 a 和 b,则 A NATURAL JOIN B 等效于以下语句:

A JOIN B
 ON A.a = B.a
 AND A.b = B.b
示例 

例如,您可以使用自然连接来连接 employee 表和 department 表,因为这两个表具有一个共同的列名称:dept_id 列。

SELECT emp_fname, emp_lname, dept_name
FROM employee NATURAL JOIN department
ORDER BY dept_name, emp_lname, emp_fname
emp_fname emp_lname dept_name
Janet Bigelow Finance
Kristen Coe Finance
James Coleman Finance
Jo Ann Davidson Finance
... ... ...

以下语句是等效的。该语句显式指定已在前面的示例中生成的连接条件。

SELECT emp_fname, emp_lname, dept_name
FROM employee JOIN department
  ON (employee.dept_id = department.dept_id)
ORDER BY dept_name, emp_lname, emp_fname

具有 ON 短语的自然连接
表的表达式的自然连接
视图和派生表的自然连接

Collection Contents 上一页 下一页 PDF