解法一:创建子表 一开始我是打算用JOIN直接连接表OrderItems和表Orders,后面发现先从表OrderItems中筛选出价格在10美元以上的商品再与表Orders进行连接运行效率会更快(当然这与题目要求的子查询不太相关)。

SELECT DISTINCT cust_id
FROM (
    SELECT order_num
    FROM OrderItems
    WHERE item_price >= 10
) o JOIN Orders USING(order_num)

注意:同一顾客可能会多次购买十美元及以上的商品,故需要用DISTINCT去重。

解法二:使用子查询

SELECT DISTINCT cust_id
FROM Orders
WHERE order_num IN (
    SELECT order_num
    FROM OrderItems
    WHERE item_price >= 10
)