Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

连接:从多个表检索数据

显式连接条件(ON 短语)


您可以单独使用显式连接条件而不用键连接或自然连接,也可以与键连接或自然连接一起使用。通过在紧随该连接之后插入 ON 短语来指定连接条件。该连接条件始终针对它前面的连接。

示例 

在以下查询中,第一个 ON 短语用于将 sales_order 连接到 customer。第二个 ON 短语用于将表的表达式 (sales_order JOIN customer) 连接到基表 sales_order_item。

SELECT *
FROM sales_order JOIN customer
    ON sales_order.cust_id = customer.id
  JOIN sales_order_items
    ON sales_order_items.id = sales_order.id
可被引用的表 

在 ON 短语中引用的表必须是 ON 短语修饰的连接的一部分。例如,以下语句无效:

FROM (A KEY JOIN B) JOIN (C JOIN D ON A.x = C.x)

造成语句无效的原因在于,连接条件 A.x = C.x 引用表 A,而该表不是该连接条件修饰的连接的一部分(在此例子中为 C JOIN D)。

但是,截至 ANSI/ISO 标准 SQL99 和 Adaptive Server Anywhere 7.0,对于该规则有一个例外:如果您在表的表达式之间使用逗号,则连接的 ON 条件可以引用 FROM 子句中在语法上位于该条件前面的表。因此,以下语句是有效的:

FROM (A KEY JOIN B) , (C JOIN D ON A.x = C.x)

有关逗号的详细信息,请参见逗号


生成的连接和 ON 短语
显式连接条件的类型
使用 WHERE 子句用于连接条件

Collection Contents 上一页 下一页 PDF