题解 | #确定哪些订单购买了 prod_id 为 BR01 的产品(二)#

确定哪些订单购买了 prod_id 为 BR01 的产品(二)

http://www.nowcoder.com/practice/999aa31a9a504c60baa088d90d82e64d

方法一:使用子查询

  • 首先,能将OrderItems表和Orders表关联起来的字段为order_num
  • 根据题目要求,需要先使用子查询来查询OrderItems,查询条件的字段为prod_id,查询的结果集为order_num字段的;
  • 之后外层查询,查询Orders表,查询的条件为order_num字段,用order_num字段去匹配子查询的结果集;
  • 最后再排序。
select cust_id, order_date
from Orders 
where order_num in (select order_num from OrderItems where prod_id = "BR01")
order by order_date;

方法二:使用2表连接

  • OrderItems表和Orders表连接成新表,连接条件的字段为order_num
select o.cust_id as cust_id, o.order_date as order_date
from OrderItems oi join Orders o on oi.order_num=o.order_num
where oi.prod_id='BR01'
order by order_date;
  • group by字段开始,可以使用别名。

采用连接好像要简单高效一点。

全部评论
该牛油正在参与牛客写题解薅羊毛的活动,牛币,周边,京东卡超多奖品放送,活动进入倒计时!快来捡漏啦https://www.nowcoder.com/discuss/888949?source_id=profile_create_nctrack&channel=-1
点赞 回复 分享
发布于 2022-04-20 17:27
第二种方法第一行不需要 `AS`
点赞 回复 分享
发布于 2022-05-15 22:44

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
9 3 评论
分享
牛客网
牛客企业服务