Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用子查询

子查询的工作方式

存在测试


只有在满足以下两个条件后,跟随在关键字 EXISTS 之后的子查询才可转换为连接:

示例 

[哪些客户在 2001 年 7 月 13 日之后下了订单] 的请求可使用此类查询(其未取非的子查询包含外部引用 customer.id = sales_order.cust_id)以公式的形式表示出来,因此,可转换为连接。

SELECT fname, lname
FROM customer
WHERE EXISTS (
   SELECT *
   FROM sales_order
   WHERE (order_date > '2001-07-13') 
 AND (customer.id = sales_order.cust_id))

EXISTS 关键字主要用来告诉数据库服务器检查空结果集。在使用内连接时,数据库服务器自动只显示这样的行:这些行的数据来自 FROM 子句中的所有表。因此,该查询返回的行与具有以下子查询的查询所返回的行相同:

SELECT fname, lname
FROM customer, sales_order
WHERE (sales_order.order_date > '2001-07-13') 
AND (customer.id = sales_order.cust_id)

Collection Contents 上一页 下一页 PDF