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

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

https://www.nowcoder.com/practice/c7aa73afc41f4dfc925baebdd175c345

与93题一样

多表链接

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

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

全部评论

相关推荐

粗心的雪碧不放弃:纯学历问题,我这几个月也是一直优化自己的简历,后来发现优化到我自己都觉得牛逼的时候,发现面试数量也没有提升,真就纯学历问题
点赞 评论 收藏
分享
5 收藏 评论
分享
牛客网
牛客企业服务