子查询
子查询
子查询(subquery),即嵌套在其他查询中的查询。
利用子查询进行过滤
假如需要列出订购物品 RGAN01 的所有顾客的查询步骤
- 检索包含物品 RGAN01 的所有订单的编号。
- 检索具有前一步骤列出的订单编号的所有顾客的 ID。
- 检索前一步骤返回的所有顾客 ID的顾客信息。
使用select步骤
SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01';
#检索物品'RGAN01'的订单编号
SELECT cust_id
FROM Orders
WHERE order_num IN (20007,20008);
#用刚才检索出来的编号查询用户ID
结合这两个查询,把第一个查询(返回订单号的那一个)变为子查询。
SELECT cust_id
FROM Orders
WHERE order_num IN (SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01');
作为计算字段使用子查询
。假如需要显示 Customers 表中每个顾客的订单总数。订单与相应的顾客 ID存储在 Orders 表中。
- 从 Customers 表中检索顾客列表;
- 对于检索出的每个顾客,统计其在 Orders 表中的订单数目。
select distinct cust_name, cust_state, (selec