利用子查询进行过滤
子查询:嵌套在其他查询中的查询
SELECT cust_idFROM OrdersWHERE order_num IN (SELECT order_numFROM OrderItemsWHERE prod_id = 'RGAN01');
代码说明:先执行内部查询:SELECT order_num FROM OrderItems WHERE prod_id = ‘RGAN01’,返回20007和20008,再执行外部查询SELECT cust_id FROM orders WHERE order_num IN (20007,20008)
注:
1、作为子查询的SELECT语句只能查询单个列,企图检索多个列将返回错误。
2、使用子查询能够编写出功能很强且很灵活的SQL语句。
3、对于能嵌套的子查询数目没有限制,不过由于性能限制,不能嵌套太多子查询。
作为计算字段使用子查询
SELECT cust_name,cust_state,(SELECT COUNT(*)FROM OrdersWHERE Orders.cust_id = Customers.cust_id) AS ordersFROM CustomersORDER BY cust_name;