题解 | #返回购买 prod_id 为 BR01 的产品#

返回购买 prod_id 为 BR01 的产品的所有顾客的电子邮件(一)

https://www.nowcoder.com/practice/962b16554fbf4b99a87f4d68020c5bfb

多表链接

select cust_email
from Customers t inner join Orders  t1 on t.cust_id=t1.cust_id
inner join OrderItems t2 on t1.order_num = t2.order_num
where prod_id ='BR01'

这道题,多表链接更简单一点。
多表链接,当没有特定的主表,基本上可以使用 inner join内链接
最后再加上条件即可,无论几张表,都是先生成一个大的虚拟表,然后筛选的。

表连接简化版本

select cust_email
from Customers  inner join Orders  using(cust_id)
inner join OrderItems using(order_num)
where prod_id ='BR01'

这里使用using代替了 on,可以少写一点代码,不过我个人很少有使用using的习惯

多层子查询

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'  )
)

多层子查询,相对来说麻烦一点。
还有一种可以子查询与链接综合使用,这里就不写了

全部评论

相关推荐

一名愚蠢的人类:多少games小鬼留下了羡慕的泪水
投递荣耀等公司10个岗位
点赞 评论 收藏
分享
object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务