Collection Contents 上一页 下一页 PDF

ASA SQL 用户指南

使用子查询

在 WHERE 子句中使用子查询


WHERE 子句中的子查询的作用是作为行选择过程的一部分。当被用来选择行的条件取决于其它表的结果时,可以在 WHERE 子句中使用子查询。

示例 

查找其库存量小于平均订购量的两倍的产品。

SELECT name, description
FROM product WHERE quantity <  2 * (
   SELECT avg(quantity)
   FROM sales_order_items)

这是一个由两个步骤组成的查询:首先,查找每个订单请求的产品的平均数;然后查找库存数小于该平均数的两倍的产品。

由两个步骤组成的查询 

sales_order_items 表的 quantity 列存储每个产品类型、客户和订单请求的产品数量。该子查询是

SELECT avg(quantity)
FROM sales_order_items

它返回 sales_order_items 表中各产品的平均数量,该数量是 25.851413。

下一个查询返回其库存数量小于以前提取的值的两倍的产品的名称和说明。

SELECT name, description
FROM product
WHERE quantity < 2*25.851413

使用子查询将上述两个步骤合并成一个操作。

在 WHERE 子句中使用子查询的目的 

WHERE 子句中的子查询是搜索条件的一部分。查询:从表中选择数据一章介绍了可以在 WHERE 子句中使用的简单搜索条件。


Collection Contents 上一页 下一页 PDF