返回顶部
首页 > 资讯 > 数据库 >Mysql内连接与外连接的区别详解
  • 954
分享到

Mysql内连接与外连接的区别详解

摘要

目录前言内连接inner join外连接outer join左(外)连接 left join右(外)连接 right join总结前言 我在写sql查询的时候,用的最多的就是where条件查询,这种查询也叫内连

前言

我在写sql查询的时候,用的最多的就是where条件查询,这种查询也叫内连查询inner join,当然还有外连查询outer join,左外连接,右外连接查询,常用在多对多关系中,那他们区别和联系是什么呢?

内连接inner join

内连接最常用定义:

连接结果仅包含符合连接条件的行组合起来作为结果集,参与连接的两个表都应该符合连接条件使用关键词:INNER JOIN 连接多张表
也就是返回两个表的交集(阴影)部分,如下图所示:

Mysql内连接与外连接的区别详解

如下sql查询语句

查询所有分配了部门信息的用户信息

也就是部门id在用户表,和部门表都存在行符合条件数据才展示

select u.USERNAME, u.MOBILE, u.EMaiL, d.DEPT_NAME
from t_user u inner join
     t_dept d
on u.DEPT_ID = d.DEPT_ID

Mysql内连接与外连接的区别详解

内连接还有一种隐式的写法,即不需要显示的指定 INNER JOIN 关键字

等价于

select u.USERNAME, u.MOBILE, u.EMAIL, d.DEPT_NAME
from t_user u,
     t_dept d
where u.DEPT_ID = d.DEPT_ID

一般我们常用直接使用where关键词查询连接条件这样更方便简单

外连接outer join

左(外)连接 left join

定义:

左(外)连接,左表的记录将会全部表示出来,而右表只会显示符合搜索条件的记录。右表记录不足的地方均为NULL,如下图所示:

Mysql内连接与外连接的区别详解

语法

LEFT JOIN ON
LEFT OUTER JOIN ON

left join 是 left outer join 的简写,它的全称是左外连接,是外连接中的一种。

如下sql查询语句

查询所有员工信息(包含部门信息)

select u.USERNAME, u.MOBILE, u.EMAIL,u.DEPT_ID, d.DEPT_NAME
from t_user u left outer join
t_dept d
on u.DEPT_ID = d.DEPT_ID

等价于

select u.USERNAME, u.MOBILE, u.EMAIL,u.DEPT_ID, d.DEPT_NAME
from t_user u left join
t_dept d
on u.DEPT_ID = d.DEPT_ID

如下图我们可以看到,左外连接 t_user 表里面 USERNAME 为 kenx 的记录,其 DEPT_ID 为 15,但 DEPT_ID 为 15 的记录在 t_dept 表里面是不存在的,此时,我们用的是左外连接,因此,可以查出该条记录,但 t_dept 表里面的字段的值都是 NULL。

右(外)连接 right join

定义:

右(外)连接,右表的记录将会全部表示出来,而左表只会显示符合搜索条件的记录。左表记录不足的地方均为NULL,如下图所示:

Mysql内连接与外连接的区别详解

语法

RIGHT JOIN ON
RIGHT OUTER JOIN ON

right join 是 right outer join 的简写,它的全称是右外连接,是外连接中的一种。

如下查询sql 语句

select u.USERNAME, u.MOBILE, u.EMAIL,u.DEPT_ID, d.DEPT_NAME
from t_user u right join
     t_dept d
on u.DEPT_ID = d.DEPT_ID

等价于

select u.USERNAME, u.MOBILE, u.EMAIL,u.DEPT_ID, d.DEPT_NAME
from t_user u right outer join
     t_dept d
on u.DEPT_ID = d.DEPT_ID

如下图 与左外连接刚好相反 查询出了所有部门信息,不符合条件的用户信息字段都为NULL

Mysql内连接与外连接的区别详解

总结

内连接:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件。

外连接:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接。

左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。

右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。

全外连接:左外连接 uNIOn 右外连接,Mysql 中暂不支持。

到此这篇关于mysql内连接与外连接区别的文章就介绍到这了,更多相关Mysql内连接与外连接区别内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: Mysql内连接与外连接的区别详解

本文链接: https://lsjlt.com/news/178441.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Mysql内连接与外连接的区别详解
    目录前言内连接inner join外连接outer join左(外)连接 left join右(外)连接 right join总结前言 我在写sql查询的时候,用的最多的就是where条件查询,这种查询也叫内连...
    99+
    2023-01-28
    mysql内外连接 mysql内外连接区别 mysql左连接和右连接的区别
  • mysql内连接与外连接有什么区别
    MySQL中连接分为内连接和外连接两种,它们之间的区别主要体现在连接条件的不同和查询结果的不同。 内连接(INNER JOIN)...
    99+
    2024-04-09
    mysql
  • 内连接和外连接的区别
    SQL数据库的连接:内连接、和外连接(左外连接、右外连接、和全连接) 本次实验在MySQL数据库中进行,数据库初始表如下 一、内连接:结果仅包含符合连接条件的两表中的行。如下二、外连接:结果包含符合条件的行...
    99+
    2024-04-02
  • 详解MySQL的内连接和外连接
    mysql 中的内连接、左外连接和右外连接是用于连接两个或多个表的不同方式,它们之间的区别如下: 内连接(Inner Join): 内连接也称为等值连接,只返回两个表中键值匹配的行,即只有在两个表中都有匹配的数据时才会返...
    99+
    2023-05-06
    MySQL内连接 MySQL外连接
  • mysql中外连接与内连接查询有什么区别
    mysql中外连接与内连接查询有什么区别?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。左外连接左外连接的结果集包含左表的所有记录和右表中满足连接条件的记录,结果...
    99+
    2023-06-15
  • MySQL的内连接和外连接有什么区别
    MySQL的内连接和外连接是两种不同的查询方式。 内连接(INNER JOIN)是根据两个表之间的共同字段进行连接,并返回满足条件的...
    99+
    2024-04-09
    MySQL
  • mysql内连接和外连接有哪些区别
    这篇文章主要介绍“mysql内连接和外连接有哪些区别”,在日常操作中,相信很多人在mysql内连接和外连接有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”mysql内...
    99+
    2024-04-02
  • 详解MySql自连接,外连接,内连接 ,左连接,右连接
    目录基础介绍1,自连接2,外连接3,左连接4,右连接具体实战1,左连接2,右连接3,自连接4,内连接基础介绍 今天我跟大家把我理解的这一块全面的介绍下,配有sql语句送给大家。首先来...
    99+
    2024-04-02
  • SQL中内连接和外连接的区别
    在这篇文章中,我们将了解 SQL 中内连接和外连接的区别。内连接子句使用的是“INNER JOIN”和“JOIN”。它返回两个或多个表的组合元组。当没有共同属性时,结果为空。如果元组数量较多,则“INNER JOIN”比“OUTER”工作得...
    99+
    2023-10-22
  • oracle中内连接和外连接的区别
    oracle 中的连接类型分为内连接和外连接。内连接仅返回匹配行的结果,而外连接返回匹配行和仅出现在一个表中的行。外连接有三种类型:左外连接(返回左侧表所有行)、右外连接(返回右侧表所有...
    99+
    2024-04-30
    oracle
  • MySQL中的连接操作:内连接、外连接和交叉连接详解
    MySQL中的连接操作:内连接、外连接和交叉连接详解在MySQL数据库中,连接操作是一种常用的操作技术,用于将两个或多个表中的数据按照一定的条件进行合并。连接操作可以帮助我们处理复杂的数据查询和分析需求。在MySQL中,我们通常使用内连接、...
    99+
    2023-10-22
    连接操作 内连接 外连接
  • mysql中内连接,左连接和右连接的区别
    mysql 中内连接、左连接和右连接的区别在于:内连接只返回同时在两个表中匹配的行,而左连接返回左表所有行,包含匹配右表行,右连接返回右表所有行,包含匹配左表行。内连接语法:selec&...
    99+
    2024-04-29
    mysql
  • 【MySQL】MySQL内连接和外连接详细总结
    目录 多表查询的分类3:内连接VS外连接(重难点)1. 内连接2.外连接3. SQL99语法实现多表查询3.1 SQL99实现内连接3.2 SQL99语法实现外连接3.2.1 左外连...
    99+
    2023-09-04
    mysql 数据库 java sql
  • sql中左连接、右连接、内连接、全外连接对比有哪些区别
    小编给大家分享一下sql中左连接、右连接、内连接、全外连接对比有哪些区别,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!区别:左连接返回包括左表中的所有记录和右表中连接字段相等的记录;右连接...
    99+
    2024-04-02
  • MySQL总结(十)表连接查询(内、外连接)-详解
    表连接查询 1.什么是多表查询 准备数据 # 创建部门表 create table dept( id int primary key auto_increment, name varchar(20) ) insert...
    99+
    2020-11-18
    MySQL总结(十)表连接查询(内 外连接)-详解
  • MySQL内外连接
    目录 前言 1.内连接 2.外连接 2.1左外连接 2.2右外连接 总结 前言         hello,各位小伙伴,大家好,很高兴又和大家见面了,本篇文章为大家介绍的是MySQL中对多张表进行操作的时候要进行多表连接,而连接的方式...
    99+
    2023-09-15
    mysql 数据库
  • mysql外连接与内连接查询的不同之处
    外连接的语法如下: SELECT 字段名称 FROM 表名1 LEFT|RIGHT|FULL| [OUTER] JOIN 表名2   ON 表名1.字段名1=表面...
    99+
    2024-04-02
  • sql中左连接和内连接的区别
    左连接与内连接的区别:左连接:返回左表所有行,即使右表中没有匹配的行;右表空值显示为 null。内连接:仅返回左表和右表中具有匹配行的行;若无匹配行,该行会被忽略。性能:左连接较慢,内连...
    99+
    2024-05-10
  • sql的四种连接——左外连接、右外连接、内连接、全连接
    一、内连接   满足条件的记录才会出现在结果集中。 二、 左外连接(left outer join,outer可省略) 左表全部出现在结果集中,若右表无对应记录,则相应字段为NULL   举例说明: 客户表: 订单表: 左外连接(...
    99+
    2023-09-10
    sql mysql 数据库
  • sql语句之内连接与外连接
    内连接: 查询效率:速度较快 内存占用:先笛卡尔积,再进行where晒减,内存占用在初期笛卡尔积的时候会很大。 内连接占用内存空间大 显示内连接和隐式内连接除了写法不一样,其他没有什么不同 外连接: 查询效率:一般...
    99+
    2021-08-12
    sql语句之内连接与外连接
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作