所有顾客的电子邮件(二)

方法一:

每个表和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';

全部评论

相关推荐

_mos_:忍耐王
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务