首页 > 数据库 >MySQL 中 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别是什么?

MySQL 中 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别是什么?

时间:2024-12-15 17:10:25浏览次数:9  
标签:table2 RIGHT 匹配 INNER JOIN LEFT

在MySQL中,INNER JOINLEFT JOINRIGHT JOIN是用于连接两个或多个表的操作符,它们的主要区别在于如何处理匹配的记录和不匹配的记录。

  1. INNER JOIN

    • 只返回两个表中匹配的记录。

    • 如果在左表和右表中找不到匹配的行,那么这些行将不会出现在结果集中。

    • 语法:

      SELECT columns
      FROM table1
      INNER JOIN table2
      ON table1.column = table2.column;
      
  2. LEFT JOIN (或 LEFT OUTER JOIN)

    • 返回左表中的所有记录,以及右表中匹配的记录。如果右表中没有匹配的记录,则结果中右表的字段会显示为NULL

    • 适用于需要保留左表所有记录的场景。

    • 语法:

      SELECT columns
      FROM table1
      LEFT JOIN table2
      ON table1.column = table2.column;
      
  3. RIGHT JOIN (或 RIGHT OUTER JOIN)

    • 返回右表中的所有记录,以及左表中匹配的记录。如果左表中没有匹配的记录,则结果中左表的字段会显示为NULL

    • 适用于需要保留右表所有记录的场景。

    • 语法:

      SELECT columns
      FROM table1
      RIGHT JOIN table2
      ON table1.column = table2.column;
      

总结:

  • INNER JOIN:仅返回两个表中都有的匹配行。
  • LEFT JOIN:返回左表的所有行,以及右表中的匹配行,如果右表没有匹配,返回NULL
  • RIGHT JOIN:返回右表的所有行,以及左表中的匹配行,如果左表没有匹配,返回NULL

标签:table2,RIGHT,匹配,INNER,JOIN,LEFT
From: https://www.cnblogs.com/eiffelzero/p/18608190

相关文章

  • AtCoder Beginner Contest 384 Solution
    A-aaaadaa(abc384A)题目大意给个长度为n的字符串,以及两个字母a和b,要求把字符串中不是a的字符全部都变成b。解题思路一个循环判断一下就行了。代码#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;chara,b;cin>>n>>a>>b;st......
  • AtCoder Beginner Contest 383
    省流版A.模拟加水漏水即可B.枚举两个加湿器的位置,然后统计加湿的单元格数量即可C.从每个加湿器进行\(BFS\)即可D.考虑因子个数的计算,分情况枚举质因数即可E.考虑\(f\)函数的求法,从小到大加边,考虑每条边对答案的贡献即可F.对颜色排序,在\(01\)背包的基础上,新增一个......
  • 【Spark】Spark数据倾斜解决方案、大表join小表及大表join大表优化思路
    如果觉得这篇文章对您有帮助,别忘了点赞、分享或关注哦!您的一点小小支持,不仅能帮助更多人找到有价值的内容,还能鼓励我持续分享更多精彩的技术文章。感谢您的支持,让我们一起在技术的世界中不断进步!Spark数据倾斜处理Spark中的数据倾斜问题主要指shuffle过程中出现的数据......
  • golang:第三方库:用jordan-wright/email发送邮件
    一,安装第三方库:$goget-ugithub.com/jordan-wright/emailgo:downloadinggithub.com/jordan-wright/emailv4.0.1-0.20210109023952-943e75fe5223+incompatiblego:addedgithub.com/jordan-wright/emailv4.0.1-0.20210109023952-943e75fe5223+incompatible二,代码:1,发送......
  • PlayWright.Net定位无ID和Name的iframe框架
    PlayWright.Net获取无ID的frame框架,在iframe中按照id定位某个文本框多页签采用的frame方式,并且嵌套的iframe没有name和id。支持无限嵌套的ifame  privateasyncTaskDumpFrameTree(IFrameframe,stringindent){foreach(varchildinframe.Child......
  • slidev 导出前 安装playwright-chromium失败
    导出幻灯片|Slidev直接参考上述npmi-Dplaywright-chromium报错\[0/1]Installingplaywright-core@1.49.1[npminstall:runscript:error]playwright-chromium@latestruninstallnodeinstall.jserror:Error:Commandfailedwithexitcode1:nodeinstall.js更......
  • Python playwright 笔记
    1.官网https://playwright.nodejs.cn/docs/api/class-playwright2.PlaywrightforPython:https://playwright.bootcss.com/python/docs/intro3.入门笔记:https://www.byhy.net/4.playwright使用教程python版本-页面监听器、状态检测、执行JS、网络Mock等使用API  https://ww......
  • 通过无缝调整来组织工作流程-JointJS+ 4.1
    通过无缝调整来组织工作流程2024年12月11日JointJS+4.1通过直观的拖放和内容感知功能增强了BPMN池、泳道和里程碑。JointJS+是一个图表库,提供自定义形状、数据绑定和高级布局算法等高级功能,让您能够创建复杂、交互且视觉上有吸引力的图表......
  • AtCoder Beginner Contest 383
    AtCoderBeginnerContest383//前三题都很水,只能写写这种题骗自己了A-Humidifier1​ 直接模拟#include<bits/stdc++.h>usingnamespacestd;#defineintlonglong#defineinfINT32_MAX#definePIIpair<int,int>#defineendl'\n'inlinevoidsolve(){......
  • R语言data.table导入数据及键设置:data.table设置键值(key)、复合键设置、删除键、设置
    R语言data.table导入数据及键设置:data.table设置键值(key)、复合键设置、删除键、设置键值之后的数据连接(join)更加方便、设置了键值之后可以使用keyby语法代替by语法目录R语言data.table导入数据实战:data.table设置键值(key)、复合键设置、删除键、设置键值之后的数据连接(join......