在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

MySQL 中 INNER JOIN、LEFT JOIN 和 RIGHT JOIN 的区别是什么?的更多相关文章

  1. 【mysql】mysql中单列索引、联合索引、Join联表查询建立索引 和 EXPLAIN的分析使用

    2.创建联合索引,从坐到右分别为:userid.openId.name   2. #### --------------  多表联合查询 update 2019/03/13  ------------ ...

  2. 关于MySQL中的left join、on、where的一点深入

    原文地址:http://www.oschina.net/question/89964_65912?sort=default&p=3#answers 即使你认为自己已对 MySQL 的 LEFT ...

  3. mysql中的JOIN用法总结

    join是mysql中一个基础的关键词,一般在多表连接查询中使用,这里做一下总结 1.JOIN的语法格式 table_references: table_reference [, table_refe ...

  4. mysql中多个left join子查询写法以及别名用法

    不多说 直接上语句   SELECT     a.id,     a.thumbNail,     a. NAME,     a.marketPrice,     a.memberPrice,     ...

  5. MySQL中链接查询inner join与left join使用

    连接查询其实就是对两个表记录做笛卡尔乘积.如果不指定连接条件的话,则会对每行都做笛卡尔乘积,这样最后返回的结果树就会是两个表记录数的乘积:如果指定则,则仅对符合列条件的行进行笛卡尔乘积,并返回结果.在 ...

  6. mysql中的几种join 及 full join问题

    [注意]:Oracle数据库支持full join,mysql是不支持full join的,但仍然可以同过左外连接+ union+右外连接实现 初始化SQL语句:   /*join 建表语句*/   ...

  7. Mysql中Join用法及优化

    Join的几种类型 笛卡尔积(交叉连接) 如果A表有n条记录,B表有m条记录,笛卡尔积产生的结果就会产生n*m条记录.在MySQL中可以为CROSS JOIN或者省略CROSS即JOIN,或者直接用f ...

  8. mysql中各种join连表查询总结

    通常我们需要连接多个表查询数据,以获取想要的结果. 一.连接可以分为三类: (1) 内连接:join,inner join (2) 外连接:left join,left outer join,righ ...

  9. [转]两表join的multi update语句在MySQL中的执行流程分析

    出自:http://hedengcheng.com/?p=209 两表join的multi update语句,执行结果与预计不一致的分析过程 — multi update结论在实际应用中,不要轻易使用 ...

  10. Mysql 中Left/Right join on后面and和where条件查询的差异-Mysql SQL运算符是有优先级

    一.Mysql中Left/Right join on后面and和where条件查询的差异 1.建两张测试表,一张商户定义表.一张商户操作状态明细表 1)商户定义表 CREATE TABLE hope. ...

随机推荐

  1. 类的加载与ClassLoader的理解

    加载:将class文件字节码内容加载到内存中,并将这些静态数据转换成方法区的运行时数据结构,然后生成一个代表这个类的java.lang.Class对象,作为方法区中类数据的访问入口(即引用地址).所 ...

  2. JVM虚拟机中的内存区域

  3. System类、Math类、BigInteger与BigDecimal的使用

     System类代表系统,系统级的很多属性和控制方法都放置在该类的内部.该类位于java.lang包. 由于该类的构造器是private的,所以无法创建该类的对象,也就是无法实例化该类.其内部的成 ...

  4. Q:nginx 访问报错403 forbidden

    curl 访问本地时 403 forbidden 查看nginx日志,路径为/var/log/nginx/error.log  (13: Permission denied),详细报错如下: 2021 ...

  5. 优化-iceberg调参优化

    一.建表优化 1.iceberg表支持更新操作. 文档:https://iceberg.apache.org/docs/latest/configuration/ 功能描述:因v1只支持insert, ...

  6. dp 常见套路总结

    dp 里存的东西值域不大的时候,考虑把状态中某一维和 dp 里存的东西交换,进行 dp. 连续段 dp 时,考虑把连续段化为对每个元素考虑接上一个元素. dp 里的值可能存在某个上界,超过这个值一定不 ...

  7. jenkins的admin用户的初始密码路径

    以下命令查看即可

  8. 企业付款到零钱(微信小程序提现,用户提现到零钱)

    pom 增加 <dependency> <groupId>com.github.binarywang</groupId> <artifactId>wei ...

  9. Typecho美化之网页底部增加好久不见的底部样式

    好久不见之本站同款网站底部样式,效果见本站. 1.修改footer.php首先,在页脚文件footer.php文件的最下面放入以下代码: <!-- 好久不见 --> <div cla ...

  10. Kubernetes - [03] 安装部署

    Kubeadm 部署k8s集群 一.准备工作 1.1.组件 组件:Harbor(私有Docker Hub).Router 服务器操作系统:Centos7 +(内核3.0+,最好内核4.40+) 1.2 ...