题解 | #确定哪些订单购买了 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;
全部评论
本来写不出来就很难受,看你写那么多更难受了
8 回复 分享
发布于 2022-11-08 16:02 上海
第二种通过不了
点赞 回复 分享
发布于 2024-06-30 16:50 浙江
太棒了
点赞 回复 分享
发布于 2024-06-18 21:25 河北
烙铁 你配享太庙
点赞 回复 分享
发布于 2023-09-16 12:40 湖南
千言万语 不抵一句你厉害
点赞 回复 分享
发布于 2023-06-20 17:14 北京
点赞 回复 分享
发布于 2023-04-13 21:36 美国
太优秀了
点赞 回复 分享
发布于 2023-02-13 20:32 河南
哪种效率更高呢?
点赞 回复 分享
发布于 2022-08-25 11:14 四川
点赞 回复 分享
发布于 2022-08-12 13:09

相关推荐

09-09 21:23
门头沟学院 Java
程序员牛肉:小牛肉来也! 主要就是没有实习经历。因为你的投递方向肯定是中小厂。在小厂中,很少会有公司愿意花钱培养你。因此会更加青睐有实习的同学。再加上你的学历比较差一点,所以找不到是正常的。 跟简历项目啥的已经没有大关系了,就是差一份实习。秋招和日常实习一起投递吧。
点赞 评论 收藏
分享
评论
304
44
分享

创作者周榜

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