所有顾客的电子邮件(二)
方法一:
每个表和Orders都有一列相同,可以用自然连接,将三个表连为一个表然后直接查就好了。
SELECT cust_email FROM Customers NATURAL JOIN Orders NATURAL JOIN OrderItems WHERE prod_id = "BR01";
方法二:
直接翻译题目,为三次查询。
SELECT
cust_email
FROM
Customers
WHERE
cust_id IN (
SELECT
cust_id
FROM
Orders
WHERE
order_num IN (
SELECT
order_num
FROM
OrderItems
WHERE
prod_id = 'BR01'
)
);
方法三:
使用内连接(写条件,且不删除列的自然连接)
SELECT cust_email FROM Customers c INNER JOIN Orders o ON c.cust_id = o.cust_id INNER JOIN OrderItems oi ON o.order_num = oi.order_num WHERE prod_id = 'BR01';
