Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 查询和修改数据 » 连接:从多个表检索数据 » 自然连接

 

视图和派生表的自然连接

对 ANSI/ISO SQL 标准的扩展是:您可以在自然连接的两侧指定视图或派生表。在以下语句中,

SELECT *
FROM View1 NATURAL JOIN View2;

将 View1 中的列与 View2 中的列进行比较。例如,如果在这两个视图中都发现名为 EmployeeID 的列,并且再没有其它同名的列,则生成的连接条件是 (View1.EmployeeID = View2.EmployeeID)

示例

以下示例说明在自然连接中使用的视图可以包括表达式,而不只是包括列,并且采用与自然连接相同的方式处理它们。首先,创建包含名为 x 的列的视图 V,如下所示:

CREATE VIEW V(x) AS
SELECT R.y + 1
FROM R;

接下来,创建该视图与派生表的自然连接。该派生表具有相关名 T 及名为 x 的列。

SELECT *
FROM V NATURAL JOIN (SELECT P.y FROM P) as T(x);

此连接等效于以下语句:

SELECT *
FROM V JOIN (SELECT P.y FROM P) as T(x) ON (V.x = T.x);