/*
列出订购物品TNT2的所有客户:
(1) 检索包含物品TNT2的所有订单的编号。
(2) 检索具有前一步骤列出的订单编号的所有客户的ID。
(3) 检索前一步骤返回的所有客户ID的客户信息。
*/
# 不使用子查询
SELECT cust_name, cust_contact
FROM customers as c, orders as o, orderitems as oi
WHERE oi.prod_id = 'TNT2'
AND oi.order_num = o.order_num
AND o.cust_id = c.cust_id;
# 使用子查询
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 = 'TNT2'));
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 = 'TNT2'));
+----------------+--------------+
| cust_name | cust_contact |
+----------------+--------------+
| Coyote Inc. | Y Lee |
| Yosemite Place | Y Sam |
+----------------+--------------+
2 rows in set (0.03 sec)
2 rows in set (0.00 sec)使用子查询