首页
学习
活动
专区
圈层
工具
发布

SQL 内连接,外连接(左外连接、右外连接)

参考https://blog.csdn.net/plg17/article/details/78758593整理笔记 一、内连接 关键字:inner join on 语句:select * from...左(外)连接,左表(a_table)的记录将会全部表示出来,而右表(b_table)只会显示符合搜索条件的记录。右表记录不足的地方均为NULL。 ?...三、右连接(右外连接) 关键字:right join on / right outer join on 语句:select * from a_table a right outer join b_table...说明: right join是right outer join的简写,它的全称是右外连接,是外连接中的一种。...与左(外)连接相反,右(外)连接,左表(a_table)只会显示符合搜索条件的记录,而右表(b_table)的记录将会全部表示出来。左表记录不足的地方均为NULL。 ?

20.1K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    左连接,右连接,内连接,外连接

    这里之前一直没有写,主要原因觉得好多东西比较基础,没想都写,但是后来觉得,学习的话应该是扫盲和汇总的阶段,所以这里也单独写一下 一 左连接,右连接 我们先看结果再分析: 两个表: A(id,name)....* from A right join B on A.id=B.id; 1 张三 1 学生 2 李四 2 老师 NULL NULL 4 校长 左连接和右连接区别为:语法公式不同、基础表不同、结果集不同...1.语法公式不同 左连接 left join 右连接 right join 2.主表不同 左连接 以左表为主表 右连接 以右表为主表 主表数据完全保留, 副表字段匹配到则数据保留,填充到结果集...二 内连接,和外连接 inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。...2.解决方案 可以使用unionl将左连接和右连接得到的结果合并起来,就可以得到想到的结果 SELECT * from people1 p1 LEFT JOIN people2 p2 ON p1.id

    3.3K10

    SQL 语句左连接右连接内连接如何使用,区别是什么?

    左外连接 (LEFT JOIN / LEFT OUTER JOIN)定义:返回左表 (FROM子句中的表) 的所有记录,以及右表中连接条件匹配的记录。...如果右表没有匹配的记录,则结果集中右表的部分返回NULL。结果:左表的全集 + 右表的匹配部分。使用场景:当你需要左表的所有记录,无论它们在右表中是否有对应项。...右外连接 (RIGHT JOIN / RIGHT OUTER JOIN)定义:与左连接相反。返回右表 (JOIN子句中的表) 的所有记录,以及左表中连接条件匹配的记录。...总结与区别连接类型关键字描述结果集(基于示例)内连接INNER JOIN只返回两个表匹配的记录。张三(技术部), 李四(销售部)左连接LEFT JOIN返回左表全部记录 + 右表匹配的记录。...张三(技术部), 李四(销售部), 王五(NULL)右连接RIGHT JOIN返回右表全部记录 + 左表匹配的记录。

    85621

    Mysql中外连接,内连接,左连接,右连接的区别

    显然这里是以 tableb 的数据为基准的 看完这两个例子,想必大家也能够自己分析出来了,显然永远是左表的数据是完整的,右表中只会查询出与左表匹配的数据,如果不匹配就不显示,显示为空.整个过程都是以左表为基准的...显然这里是以 tablea 的数据为基准的 看完这两个例子,想必大家也能够自己分析出来了,显然永远是右表的数据是完整的,左表中只会查询出与右表匹配的数据,如果不匹配就不显示,显示为空.整个过程都是以右表为基准的...到这里我们就要稍微区分一下基准表的定义,我们切不可将那个表名在前就觉得它是基准表,这里还是通过下面两张图: 左连接基准表 ?...右连接基准表 ? 所以基准表并不是以谁写在前面谁就是基准表定义的,还是通过位置来定义的,左连接就以左边的表为基准表,右连接就以右边的表为基准. 3....这里我们通过与上面外连接的对比分析之后就可以看出来,内连接整个更加能够体现数据的完整性,上图我们可以看出内连接只会显示所有产生连接的数据,那些不匹配的数据,不管是左表中的还是右表中的.

    6.5K20

    深入理解SQL的四种连接-左外连接、右外连接、内连接、全连接

    三者的共同点是都返回符合连接条件和查询条件(即:内连接)的数据行。不同点如下: 左外连接还返回左表中不符合连接条件单符合查询条件的数据行。...右外连接还返回右表中不符合连接条件单符合查询条件的数据行。 全外连接还返回左表中不符合连接条件单符合查询条件的数据行,并且还返回右表中不符合连接条件单符合查询条件的数据行。...全外连接实际是上左外连接和右外连接的数学合集(去掉重复),即“全外=左外 UNION 右外”。 说明:左表就是在“(LEFT OUTER JOIN)”关键字左边的表。右表当然就是右边的了。...但是可以通过左外和右外求合集来获取全外连接的查询结果。下图是上面SQL在Oracle下执行的结果: 语句10:左外和右外的合集,实际上查询结果和语句9是相同的。...下面总结一下两表连接查询选择方式的依据: 1、 查两表关联列相等的数据用内连接。 2、 Col_L是Col_R的子集时用右外连接。 3、 Col_R是Col_L的子集时用左外连接。

    7.4K10

    左连接 ,右连接,内连接和全外连接的4者区别

    基本定义:   left join (左连接):返回包括左表中的所有记录和右表中连接字段相等的记录。   right join (右连接):返回包括右表中的所有记录和左表中连接字段相等的记录。   ...inner join (等值连接或者叫内连接):只返回两个表中连接字段相等的行。   full join (全外连接):返回左右表中所有的记录和左右表中连接字段相等的记录。...  id  name     1  小王   2  小李   3  小刘   B表   id  A_id  job   1  2    老师   2  4    程序员 内连接...from A a full join B b on a.id=b.A_id   四条数据   小王  null   小李  老师   小刘  null   null  程序员 注:在sql...中l外连接包括左连接(left join )和右连接(right join),全外连接(full join),等值连接(inner join)又叫内连接。

    9.2K20

    SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

    SQL连接可以分为内连接、外连接、交叉连接。...2.外连接 2.1.左联接:是以左表为基准,将a.stuid = b.stuid的数据进行连接,然后将左表没有的对应项显示,右表的列为NULL select * from book as a left...join stu as b on a.sutid = b.stuid 2.2.右连接:是以右表为基准,将a.stuid = b.stuid的数据进行连接,然以将右表没有的对应项显示,左表的列为NULL...select * from book as a right join stu as b on a.sutid = b.stuid 2.3.全连接:完整外部联接返回左表和右表中的所有行。...select * from book as a full outer join stu as b on a.sutid = b.stuid 3.交叉连接 交叉连接:交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合

    4.8K40

    软件测试|数据库的内连接,左连接,右链接分别是什么

    这些关系型数据库都可以使用 SQL 语句进行操作。非关系型数据库常见的有 MongoDB、Redis 等等。...内链接,左连接与右连接表连接中最常见的类型就是内连接、左连接和右连接。...连接类型关键词定义内连接(INNER) JOIN获取两个表中字段匹配关系的记录左连接LEFT (OUTER) JOIN获取左表所有记录,右表没有对应匹配的记录时显示为 NULL右连接RIGHT (OUTER...) JOIN获取右表所有记录,左表没有对应匹配的记录时显示为 NULL内连接获取两个表中字段匹配关系的记录,也就是两张表的交集。...关系型数据库,比如使用最广泛的 MySQL,可以使用 SQL 结构化查询语句来进行数据库的操作。关系型数据库中多表查询中比较常见的表连接形式分别为内连接、左连接和右连接。

    2K31

    手把手入门 MongoDB:这些坑点请一定远离

    from 右集合,指定在同一数据库中执行连接的集合。...如果左集合不包含localField,$lookup 视为null值来匹配 foreignField 指定from集合(右集合)用来匹配的字段。...orders左集合 左连接 products 右集合,通过 orders下的item 与 products 集合的sku: 值得注意: • 两个集合必须在同一个db • orders是左集合,左连接...• item是orders左集合字段 • sku是products右集合字段 • item为null, 左连接, 右集合 sku为null db.orders.aggregate([ { $lookup...update查询内where后面的 • update : update的对象和一些更新的操作符(如,inc...)等,也可以理解为sql update查询内set后面的 • upsert : 可选,这个参数的意思是

    6.7K10

    深入理解MySQL---数据库知识最全整理,这些你都知道了吗?

    包括MySQL,JDBC基础,JDBC进阶,MongoDB,性能优化等知识点。...在windows下开户和关闭mysql服务器 net start mysql net stop mysql 登录和退出mysql客户端 mysql -u用户名 -p密码 -hIP exit或quit SQL...解释:结构化查询语言 ISO:国际标准化组织 ISO定义了很多SQL标准,例如:SQL99 各个数据库厂商需要遵循这个标签!...select ename 姓名 from emp 去除完全重复的行:select distinct comm from emp 条件查询 模糊查询 下划线 百分号 排序 降序:desc 升序:asc 聚合函数...连接类型 内连接 显示左表及右表符合连接条件的记录 左外连接 显示左表的全部记录及右表符合连接条件的记录 右外连接 显示右表的全部记录及左表符合连接条件的记录 自身连接 同一个数据表对其自身进行连接

    79930

    MySQL数据库的查询

    连接查询可以分为: 内连接查询 左连接查询 右连接查询 自连接查询 2、内连接查询 查询两个表中符合条件的共有记录 内连接查询效果图: 内连接查询语法格式: select 字段 from 表1 inner...“交集” 连接查询 - 左连接 1、左连接查询 以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值填充 左连接查询效果图: 左连接查询语法格式: select 字段 from..., on 表示两个表的连接查询条件 左连接以左表为主根据条件查询右表数据,右表数据不存在使用null值填充。...连接查询 - 右连接 以右表为主根据条件查询左表数据,如果根据条件查询左表数据不存在使用null值填充 右连接查询效果图: 右连接查询语法格式: select 字段 from 表1 right join...右连接以右表为主根据条件查询左表数据,左表数据不存在使用null值填充。

    23.3K30

    数据分析面试必考—SQL快速入门宝典

    因为这会导致一对多,SQL逻辑混乱的情况;我们应用上面说的万能框架+聚合三要素给出一段聚合函数的使用案例: 需求:使用聚合函数实现提取在XX学校XX年纪XX班同学中,语数外三门成绩最小值大于等于60分所有同学姓名...连接条件较为简单,这里首先说明,即两个表连接在一起时需要满足的条件,一般为两个表中对应字段的值相等; 对于表的连接语句有四种:内连接inner join、全连接full join、左连接left join...:基于连接条件,左表数据作为标准,右表也存在的数据将与左表显示在同一行,否则将使用空值填充; 右连接:基于连接条件,右表数据作为标准,左表也存在的数据将与右表显示在同一行,否则将使用空值填充; 内连接和全连接是两个极端...,内连接是两者均有才会返回,全连接是不管两者有没有,所有数据都要返回,存在匹配成功就放在同一行的形式; 左连接和右连接看起来有一者是多余的,因为我们可以使用左连接和右连接中的任意一个,同时通过调整表查询的顺序来实现左...因为在SQL的查询机制中,前面的表(左表)较小时,查询的效率更高;由于这个潜规则,我们放置数据表的顺序被限制后,才需要这两个不同的连接来实现不同的左、右连接的功能。

    5.4K10

    MySQL数据库学习之两情相悦

    (无意义)修改sql模式(set global sql_mode='ONLY_FULL_GROUP_BY';)之后,坚持查询非分组字段会报错分组之后默认只能查找到分组字段的数据,也可以使用聚合函数得到其他字段的数据...():查看组内的数据 7. having过滤条件 having在group by之后进行过滤分组后的条件having只能对分组字段进行过滤,无法对非分组字段过滤对非分组条件进行过滤,需要使用聚合函数 8...多表联查 多表联查需要使用join联表,使用on指定联表条件,如果不指定联表条件,会产生交叉连接,生成笛卡尔积连接分为内链接和外连接 内连接(inner join):显示左表和右表共同的数据 外连接分为左外连接...、右外连接和全外连接 右外连接(right join):优先显示右表的数据,左表不存在的使用NULL填充左外连接(left join):优先显示左表的数据,右表不存在的使用NULL填充 MySQL默认不支持全外连接...,可以使用union关键字进行关联 union all:连接左表和右表的记录,不会去重,会显示所有数据,没有数据的使用NULL填充union:连接左表和右表的记录,然后进行去重 子查询:把一个查询语句的结果当作另外一个查询语句的条件

    1.7K50

    MySQL从删库到跑路(五)——SQL查询

    2、外连接查询 外连接分为左连接、右连接、全连接。...外连接返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左外连接或左连接)、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。...三者的共同点是都返回符合连接条件和查询条件(即:内连接)的数据行。不同点如下: 左外连接还返回左表中不符合连接条件单符合查询条件的数据行。 右外连接还返回右表中不符合连接条件单符合查询条件的数据行。...FROM子句中的表或视图可通过内连接或全连接按任意顺序指定;但是,用左或右向外连接指定表或视图时,表或视图的顺序很重要。...两表连接查询选择方式的依据: A、查两表关联列相等的数据用内连接。 B、Col_L是Col_R的子集时用右连接。 C、Col_R是Col_L的子集时用左连接。

    4K30

    【JavaWeb】64:多表查询详解

    那么如何使用sql语句一次性查询多张表的数据? 这是我们应该去考虑的问题,为了解决这个问题,今天继续学习多表查询。 一、笛卡尔积与内连接 万万没有想到,学个数据库竟然还能接触到笛卡尔积?...二、三种外连接 外连接又分为左外连接和右外连接。 左外连接:显示左表的全部记录以及右边符合连接条件的记录。 右外连接:原理同上,只不过表相反。 ?...就是将左外连接和右外连接结合起来了。 三、四种连接方式图解 表A与表B,其中它们相互重合的部分为C。 四种连接方式图解如下: ? ①内连接 就相当于C。 将这两张表重合的部分查询出来。...②左外连接 就相当于A+C。 左边的表加上另一张表与之相交的部分。 ③右外连接 就相当于C+B。 右边的表加上另一张表与之相交的部分。 ④全外连接 就相当于A+B+C。...在MySQL数据库中全外连接是如何表示的? 全外连接=左外连接+右外连接; 所以多了一个C,那么就要去重。 ? 语法格式也就是左外连接和右外连接相加。 union :去掉重复的数据。

    1K20
    领券