1、子查询进行过滤
SQL允许创建子查询(subquery),即嵌套在其他查询中的查询。可以把一条SELECT语句返回的结果用于另一条SELECT语句的WHERE子句。
示例如下:
SELECT cust_name, cust_contact
FROM Customers
WHERE cust_id IN (SELECT cust_id
FROM Orders
WHERE order_num IN (SELECT order_num
FROM OrderItems
WHERE prod_id = 'RGAN01'));
在 SELECT 语句中,子查询总是从内向外处理。作为子查询的 SELECT 语句只能查询单个列。企图检索多个列将返回错误。
2、作为计算字段使用子查询
-- orders 是一个计算字段,它是由圆括号中的子查询建立的。
-- 该子查询对检索出的每个顾客执行一次。
select cust_name,cust_contact,(SELECT COUNT(*)
FROM Orders
WHERE Orders.cust_id = Customers.cust_id) as orders
from customers
order by orders