当前位置: 首页 > news >正文

【LeetCode题库】1068. 产品销售分析 I —— MySQL 性能提升,using()关键字

文章目录

  • 原题
  • 题解
  • 解题笔记 —— JOIN USING()关键字对性能的提升

我是一名立志把细节都说清楚的博主,欢迎【关注】🎉 ~

原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~

如有错误、疑惑,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持


原题

销售表 Sales

+-------------+-------+
| Column Name | Type  |
+-------------+-------+
| sale_id     | int   |
| product_id  | int   |
| year        | int   |
| quantity    | int   |
| price       | int   |
+-------------+-------+

(sale_id, year) 是销售表 Sales 的主键(具有唯一值的列的组合)。
product_id 是关联到产品表 Product 的外键(reference 列)。
该表的每一行显示 product_id 在某一年的销售情况。
注意: price 表示每单位价格。

产品表 Product

+--------------+---------+
| Column Name  | Type    |
+--------------+---------+
| product_id   | int     |
| product_name | varchar |
+--------------+---------+

product_id 是表的主键(具有唯一值的列)。
该表的每一行表示每种产品的产品名称。

编写解决方案,以获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。

返回结果表 无顺序要求 。

结果格式示例如下。

示例 1:

输入:

Sales 表:

+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+ 
| 1       | 100        | 2008 | 10       | 5000  |
| 2       | 100        | 2009 | 12       | 5000  |
| 7       | 200        | 2011 | 15       | 9000  |
+---------+------------+------+----------+-------+

Product 表:

+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100        | Nokia        |
| 200        | Apple        |
| 300        | Samsung      |
+------------+--------------+

输出:

+--------------+-------+-------+
| product_name | year  | price |
+--------------+-------+-------+
| Nokia        | 2008  | 5000  |
| Nokia        | 2009  | 5000  |
| Apple        | 2011  | 9000  |
+--------------+-------+-------+

题解

解法一: JOIN ON 关键字。

SELECTproduct_name, year, price
FROMSales 
JOINProduct
ONSales.product_id = Product.product_id;

解法二:JOIN USING() 关键字。性能比解法一的更好一点,并且写法更简单。

SELECTproduct_name, year, price
FROMSales 
JOINProduct
USING(product_id);

解题笔记 —— JOIN USING()关键字对性能的提升

解法一: JOIN ON 关键字

  • 这是比较常规的连接查询。
    • JOIN 操作必须配合 ON 关键字使用。
    • ON 后面接两个表的连接条件。

解法二:JOIN USING() 关键字

  • 连接查询时,连接条件是同名字段,性能会高于 JOIN ON 关键字,并且写法上更方便(直接使用 USING( 同名字段 ) 即可)。
  • 可以指定有效的同名连接条件,忽略无效的同名字段。

关于 JOIN 关键字,图文详解请看文章:

【MySQL】连接查询(JOIN 关键字)—— 图解:内连接、外连接、左连接、左外连接、右连接、右外连接


我是一名立志把细节都说清楚的博主,欢迎【关注】🎉 ~

原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~

如有错误、疑惑 ,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持

相关文章:

【LeetCode题库】1068. 产品销售分析 I —— MySQL 性能提升,using()关键字

文章目录 原题题解解题笔记 —— JOIN USING()关键字对性能的提升 我是一名立志把细节都说清楚的博主,欢迎【关注】🎉 ~ 原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ ❥(^_-)~ 如有错误、疑惑,欢迎【评论】指正…...

leetcode 1 ~ 100

文章目录 1. 两数之和(用哈希表减少查找的时间复杂度)2. 两数相加(高精度加法)3.无重复字符的最长子串:(模板:经典的滑动窗口算法)5. 最长回文子串(枚举)6. Z…...

分享6个免费下载电子书的网站

着急看书的宝子们看这里! 收藏了一堆电子书网站终于能派上用场了~ 01/Z-Library https://zh.zlibrary-be.se/ 世界上最大的电子图书馆,拥有超千万的书籍和文章资源,99%的书籍资料都能在这里找到。 我给的这个网址现在还能正常打开使用&…...

typescript的入门到吐槽:看了typescript,发现前端真的卷,

typescript TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript 与 JavaScript 的区别 其实就是对JavaScript的封装,把一个弱类型语言封…...

抖店商品详情API接口,商品上架(主图,价格,sku等属性,)item_get-获得抖店商品详情

抖店商品详情API接口,商品上架(主图,价格,sku等属性,)item_get-获得抖店商品详情 {"code": 0,"msg": "调用成功","time": "1715166889","data&quo…...

STM32使用ADC单/多通道检测数据

文章目录 1. STM32单片机ADC功能详解 2. AD单通道 2.1 初始化 2.2 ADC.c 2.3 ADC.h 2.4 main.c 3. AD多通道 3.1 ADC.c 3.2 ADC.h 3.3 main.c 3.4 完整工程文件 1. STM32单片机ADC功能详解 STM32单片机ADC功能详解 2. AD单通道 这个代码实现通过ADC功能采集三脚电…...

Unity 性能优化之动态批处理(四)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、动态合批是什么?二、使用动态批处理1.打开动态合批2.满足条件 三、检查动态合批是否成功五、动态合批弊端总结 前言 动态批处理是常用优…...

Windows 11 系统安装时如何跳过联网和逃避微软账号登录

问题描述 Windows 11 是从 22H2 版本之后开始强制联网何登录微软账号的。 这就带来两个问题: 1、如果我的电脑没有网络或者网卡驱动有问题,那就无法继续安装系统了。 2、如果我有强怕症,就是不想登录微软账号,害怕个人信息泄露…...

uniapp + vue3 使用axios

场景 uniapp自带的uni.request不太好用,也有可能是自己用axios用的太熟悉了,所以还是用axios趁手点,所以尝试在uniapp中使用axios。 操作 因为uniapp项目没有package.json,所以先在项目根目录下执行 npm init, 执行完毕后直接…...

关于前后端的参数传递

以前端javascript,后端nodejsexpress为例,后端可以从前端发来的request里获取这些属性:header、query、url、params、body,其中params和query是从url中解析获得,不过express已帮我们做好了,就不用我们自己再…...

华火电焰灶,科技打造“新”厨房

家里最大的空气污染源其实来自厨房里的燃气灶!——斯坦福大学发表的《科学进展》期刊 厨房在家庭中占有举足轻重的地位,它不仅是一个烹饪美食的场所,更是家人情感交流的重要空间。厨房大致经历了两次变革,分别是以柴火灶为主体的厨…...

普通人副业要趁早,5种靠谱且持久的赚钱副业

中年危机、35岁被裁,这些听起来就让人焦虑的词汇,是否也让你感到不安?别担心,只要你早早开启副业之旅,这些都不是问题。 今天,我要为你介绍的这5种副业,不仅能帮你赚钱,还能让你的能…...

【文献解析】3D高斯抛雪球是个什么玩意

论文地址:https://arxiv.org/abs/2308.04079 项目:3D Gaussian Splatting for Real-Time Radiance Field Rendering 代码:git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive 一、文章概述 1.1问题导向 辐射…...

嘎嘎好用的虚拟键盘第二弹之中文输入法

之前还在为不用研究输入中文而暗自窃喜 这不新需求就来了(新需求不会迟到 它只是在路上飞一会儿) 找到了个博主分享的代码 是好使的 前端-xyq 已经和原作者申请转载了 感谢~~ 原作者地址:https://www.cnblogs.com/linjiangxian/p/16223681.h…...

vue3使用el-autocomplete请求远程数据

服务器端 RestController RequestMapping("/teacher") public class TeacherController {Resourceprivate TeacherService teacherService;GetMapping({"/v1/getTop10TeacherByName/","/v1/getTop10TeacherByName/{name}"})public ResultBean&l…...

【学习笔记】HarmonyOS 4.0 鸿蒙Next 应用开发--安装开发环境

开发前的准备 首先先到官网去下载Devco Studio 这个开发工具,https://developer.harmonyos.com/cn/develop/deveco-studio/#download 提供了WIndows和Mac的开发环境,我自己是Windows的开发环境。 所以下载之后直接点击exe进行安装即可。 如果之前安装过…...

【PHP】计算两个时间戳之间相差的时间

目录 一、span方法概述 二、输出格式解析 三、方法执行流程 四、应用场景 五、注意事项 六、完整代码示例 时间跨度计算:PHP中的span方法解析 在Web开发中,我们经常需要对时间进行各种计算,尤其是在用户界面中展示时间差或倒计时等功能…...

Out-of-Distribution Detection with Semantic Mismatch under Masking

Out-of-Distribution Detection with Semantic Mismatch under Masking 摘要引言2 相关工作2.1 现有的OOD检测方法2.2基于重构的面向对象检测2.3利用外部OOD数据进行OOD检测2.4 开放集合识别Mismatch under Masking) 摘要 本文提出了一种名为MoodCat的新型分布之外(OOD)检测…...

嫦娥六号近月制动成功,建立月球基地又迈进一步!

嫦娥六号探测器在近月制动的关键时刻,北京航天飞行控制中心内弥漫着紧张而庄重的氛围。每一个航天科技工作者都屏息以待,他们的眼神中充满了期待与自豪。随着一系列精妙绝伦的指令如同琴弦上的音符般流畅地奏响,嫦娥六号探测器在万众瞩目的目…...

上位机图像处理和嵌入式模块部署(树莓派4b使用lua)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 lua是一个脚本语言,比c语言开发容易,也没有python那么重,整体使用还是非常方便的。一般当成胶水语言进行开发&a…...

REX-C410温控仪连接K型热电偶相关参数设置

1、同时按SET<键3秒 并按SET切换 修改后按 SET键3秒 保存 改SL1 参数为000 K型热电偶 改SL4 参数为0011 过程上限报警 2、按 SET键3秒 改AL1 为SV设定温度值这样修改后当实际温度 小于SV 设定温度值时OUT有输出&#xff0c;当温度达到设定值时ALM1有输出...

SuperRDP完整指南:一键解锁Windows远程桌面多用户并发连接限制

SuperRDP完整指南&#xff1a;一键解锁Windows远程桌面多用户并发连接限制 【免费下载链接】SuperRDP Super RDPWrap 项目地址: https://gitcode.com/gh_mirrors/su/SuperRDP SuperRDP是基于RDPWrap技术的智能工具&#xff0c;专为突破Windows系统远程桌面功能限制而设计…...

双机双卡训练yolov5(yolov5+pytorch+DDP+NCCL+RDMA全栈解析)

重点关注问题&#xff1a;1、nvidia-smi topo -m 是怎么获取topo结构的&#xff1f;调用了什么api&#xff1f;2、以下接口有什么用&#xff0c;怎么实现的&#xff1f;nvmlDeveiceGetNvLinkVersionnvmlDeveiceGetNvLinkCapabilitynvmlDeveiceGetNvLinkStatenvmlDeveiceGetNvLi…...

初次使用 Taotoken 控制台的快速浏览与核心功能导引

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 初次使用 Taotoken 控制台的快速浏览与核心功能导引 当你注册并登录 Taotoken 平台后&#xff0c;首先进入的就是用户控制台。这个…...

WLED与xLights打造音乐同步LED灯光秀:从硬件连接到创意编排

1. 项目概述&#xff1a;从独立闪烁到交响乐章如果你玩过像NeoPixel这类可单独寻址的LED灯带&#xff0c;肯定体验过那种让灯光随心所欲流动的快感。但不知道你有没有想过&#xff0c;把这些闪烁的光点从简单的循环动画&#xff0c;升级成一场能与音乐节拍精准共舞、充满叙事感…...

【2026最新版Linux安装Mysql】CentOS 7 安装 MySQL 8.4.9 完整流程(RPM 手动安装+避坑+面试)

前言&#xff1a;本文记录在 CentOS 7 / RHEL 7 上&#xff0c;通过官网 RPM Bundle tar 包手动安装 MySQL 8.4.9&#xff08;LTS&#xff09; 的完整可复现流程。适合需要在老版本 CentOS 上部署 MySQL、为 Python/AI 后端或 Java 项目准备数据库环境的读者。读完可按步骤完成…...

别再让你的Qt界面有锯齿了!手把手教你用QPainter的Antialiasing和HighQualityAntialiasing

Qt图形渲染优化实战&#xff1a;抗锯齿原理与性能调优指南 在开发需要精细图形展示的Qt应用时&#xff0c;开发者常会遇到一个棘手问题——图形边缘的锯齿现象。无论是仪表盘上的指针、数据可视化中的曲线&#xff0c;还是自定义控件的圆角边框&#xff0c;锯齿都会严重影响视觉…...

从Kafka设计哲学到高性能系统通用模式:吞吐、顺序I/O与批处理的艺术

1. 项目概述&#xff1a;为什么是Kafka&#xff1f;如果你在后台开发、数据平台或者中间件领域摸爬滚打过几年&#xff0c;大概率会听过甚至深度使用过Apache Kafka。它早已不是一个简单的消息队列&#xff0c;而是现代数据驱动架构的“中枢神经系统”。我最初接触Kafka&#x…...

从CTF靶场到实战:手把手教你复现ctfshow web3的PHP伪协议利用(附BurpSuite抓包技巧)

从CTF靶场到实战&#xff1a;深入解析PHP伪协议利用与BurpSuite实战技巧 在网络安全领域&#xff0c;CTF比赛不仅是检验技能的竞技场&#xff0c;更是学习实战渗透技术的绝佳资源。ctfshow web3这道题目巧妙地将PHP伪协议利用与文件包含漏洞结合在一起&#xff0c;为我们提供了…...

高效精准的SacreBLEU实战指南:机器翻译评估的专业解决方案

高效精准的SacreBLEU实战指南&#xff1a;机器翻译评估的专业解决方案 【免费下载链接】sacrebleu Reference BLEU implementation that auto-downloads test sets and reports a version string to facilitate cross-lab comparisons 项目地址: https://gitcode.com/gh_mirr…...