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

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

http://www.nowcoder.com/practice/b692b0174c0444fa9452aee2d082fbbb

自己写的几种加上各位牛友写的一些整理了一下, 供大家参考:

  1. where版本
select cust_id, order_date
from Orders o, OrderItems oi
where prod_id = 'BR01' and o.order_num = oi.order_num
order by order_date
  1. 子查询版本
  select cust_id, order_date from Orders
  where order_num in (
      select order_num from OrderItems
      where prod_id = 'BR01'
  )
  order by order_date;
  1. 左连接版本
select
  cust_id,
  order_date
from
  Orders o
  LEFT JOIN OrderItems oi ON o.order_num = oi.order_num
where
  prod_id = 'BR01'
order by
  order_date;
  1. 自然连接版本
select
  cust_id,
  order_date
from
  Orders
  NATURAL JOIN OrderItems
where prod_id = 'BR01'
order by  order_date;
  1. 内连接 类似where
select
  cust_id,
  order_date
from
  Orders o
  inner JOIN OrderItems oi
on o.order_num = oi.order_num and  prod_id = 'BR01'
order by order_date;
  1. join using 类似自然连接
select
 cust_id,
 order_date
from
 Orders
 # 相当于自然连接对相同的列进行连接
 join OrderItems using(order_num)
where
 prod_id = 'BR01'
order by
 order_date;
全部评论
本来写不出来就很难受,看你写那么多更难受了
6 回复 分享
发布于 2022-11-08 16:02 上海
点赞 回复 分享
发布于 2022-08-12 13:09
哪种效率更高呢?
点赞 回复 分享
发布于 2022-08-25 11:14 四川
太优秀了
点赞 回复 分享
发布于 2023-02-13 20:32 河南
点赞 回复 分享
发布于 2023-04-13 21:36 美国
千言万语 不抵一句你厉害
点赞 回复 分享
发布于 2023-06-20 17:14 北京
烙铁 你配享太庙
点赞 回复 分享
发布于 2023-09-16 12:40 湖南
太棒了
点赞 回复 分享
发布于 06-18 21:25 河北
第二种通过不了
点赞 回复 分享
发布于 06-30 16:50 浙江

相关推荐

10-25 12:05
已编辑
湖南科技大学 Java
若梦难了:我有你这简历,已经大厂乱杀了
点赞 评论 收藏
分享
10-15 10:57
已编辑
武昌理工学院 FPGA工程师
狠赚笔第一人:老哥学院本没实习还想拿13k学Java狠赚笔呢
点赞 评论 收藏
分享
评论
270
44
分享
牛客网
牛客企业服务