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

SQL理解——INNER JOIN

文章目录

  • SQL语句
  • 需求
  • 使用 INNER JOIN 的原因

SQL语句

    /*** 查询两个用户之间共有的单聊 sessionId** @param userId1 第一个用户的ID* @param userId2 第二个用户的ID* @return 共有的单聊 sessionId 列表*/@Select("SELECT us1.session_id " +"FROM user_session us1 " +"INNER JOIN user_session us2 ON us1.session_id = us2.session_id " +"INNER JOIN session s ON us1.session_id = s.id " +"WHERE us1.user_id = #{userId1} " +"AND us2.user_id = #{userId2} " +"AND s.type = 1 " +"AND s.status = 1 " +"AND us1.status = 1 " +"AND us2.status = 1")List<Long> findCommonSingleChatSessionIds(@Param("userId1") Long userId1, @Param("userId2") Long userId2);

需求

在代码中,目标是查询两个用户之间共有的单聊会话sessionId。
具体需求是:
找到两个用户都参与的会话。
确保这些会话是单聊(type = 1)且状态有效(status = 1)。

使用 INNER JOIN 的原因

匹配需求:代码的目标是找到两个用户都参与的会话,这意味着只有当两个用户在user_session表中都有记录时,才认为这是一个有效的会话。INNER JOIN正好满足这个需求,它只返回两个表中匹配的记录。
数据完整性:在这个场景中,我们不需要保留任何一个用户的所有记录,而是需要找到两个用户共同参与的会话。因此,INNER JOIN是更合适的选择。
性能优化:INNER JOIN通常比LEFT JOIN更高效,因为它只处理匹配的记录。在这个场景中,使用INNER JOIN可以提高查询效率。

使用 LEFT JOIN 的问题:
返回多余的数据:LEFT JOIN会返回左表中的所有记录,即使右表中没有匹配的记录。这会导致查询结果中包含不相关的数据,不符合我们的需求。
性能下降:LEFT JOIN需要处理更多的数据,尤其是当左表比右表大得多时。这可能会导致查询效率降低。

http://www.dtcms.com/a/307322.html

相关文章:

  • 机器人行业工商注册企业基本信息数据(1958-2023年)
  • MySQL转PostgreSQL迁移实战:从语法错误到完美兼容
  • AWS云安全审计终极实战指南:构建自动化安全防线
  • Golang 调试技巧:在 Goland 中查看 Beego 控制器接收的前端字段参数
  • Sort Merge Join为什么是Spark中最优的join
  • C语言指针(三):数组传参本质、冒泡排序与二级指针详解
  • C++异常处理的成本:理解与优化
  • 超宽带测距+测角+无线通信一体化模组:智能门锁、智能遥控器、AR头戴、智能穿戴
  • yolo目标检测基础知识
  • AWS高级解决方案架构师黄海波:GenAI 时代非结构化数据处理的实践与趋势洞察
  • 【最近公共祖先】ST表法
  • 从渠道渗透到圈层渗透:开源链动2+1模式、AI智能名片与S2B2C商城小程序的协同创新路径研究
  • 联通元景万悟 开源,抢先体验!!!
  • 技术速递|GitHub Copilot for Eclipse 迈出重要一步
  • SpringAI:AI工程应用框架新选择
  • 转码刷 LeetCode 笔记[1]:3.无重复字符的最长子串(python)
  • 一对一交友小程序 / APP 系统架构分析
  • n8n为什么建议在数组的每个item中添加json键?
  • python的异步、并发开发
  • 聊下多线程查询数据库
  • YOLO---01目标检测基础
  • C++从入门到起飞之——智能指针!
  • day 40 打卡-装饰器
  • Vulnhub Thales靶机复现详解
  • 02 基于sklearn的机械学习-KNN算法、模型选择与调优(交叉验证、朴素贝叶斯算法、拉普拉斯平滑)、决策树(信息增益、基尼指数)、随机森林
  • 【JEECG】JVxeTable表格拖拽排序功能
  • C语言:逆序输出0到9的数组元素
  • LeetCode Hot 100 搜索旋转排序数组
  • 腾讯云市场排名
  • 借助 Wisdom SSH 的 AI 助手构建 Linux 开发环境