使用子查询
廖家龙 用心听,不照做

使用子查询

查询:任何SQL语句都是查询,但此术语一般指SELECT语句

1)列出订购物品TNT2的所有客户:

法1:
SELECT order_num
FROM orderitems
WHERE prod_id=’TNT2’;

SELECT cust_id
FROM orders
WHERE order_num IN(20005,20007);

SELECT custname,custcontact
FROM customers
WHERE cust_id IN(10001,10004);

法2:(在SELECT语句中,子查询总是从内向外处理)
SELECT custname,custcontact
FROM customers
WHERE custid IN(SELECT custid
FROM orders
WHERE ordernum IN(SELECT ordernum
FROM orderitems
WHERE prod_id=’TNT2’));


法3:
SELECT custname,custcontact
FROM customers,orders,orderitems
WHERE customers.custid=orders.custid
AND orderitems..ordernum=orders.ordernum
AND prod_id=’TNT2’;

2)显示customers表中每个客户的订单总数

SELECT custname,custstate,
(SELECT COUNT(*)
FROM orders
WHERE orders.custid=customers.custid) AS orders
FROM customers
ORDER BY cust_name;

相关子查询:涉及外部查询的子查询