join、inner join、left join、right join、outer join的区别

news/2024/11/20 1:44:39/文章来源:https://www.cnblogs.com/huangzhicai/p/18197338

什么是联结?
union、intersect等集合运算,它的特征是以 “行” 为单位进行操作,通俗点说,就是进行这些集合运算,会导致记录行数的增减,使用union会增加记录行数,使用 intersect 或 expect 会减少行记录,集合运算不会导致 “列” 数量的改变。而联结(join) 操作,就是将其他表中的列添加过来,进行 “列添加”的运算。当需要从多张表中取出不同的列组成一个新的查询结果时,就需要用的联结(join)运算了。以下是几种联结运算的简单说明。

1、join 和 inner join是一样的,为了简写省掉 inner 可直接写为 join, 内联结,表示以两个表的交集为主,查出来是两个表有交集的部分,其余没有关联就不额外显示出来,如下;

2、left join 左联结,就是“左联结”,表1 left join 表2,以左为主,表示以表1为主,关联上表2的数据,查出来的结果显示左边的所有数据,然后右边显示的是和左边有交集部分的数据。如下

3、right join “右联结”,表1 right join 表2,以右为主,表示以表2为主,关联查询表1的数据,查出表2所有数据以及表1和表2有交集的数据,如下:

4、outer join,在MySQL中, 外联结必须指定主表,需指定左右,也即 left outer join,right outer join,实际上,就是 left join 和 right join,为了方便书写把outer省略掉了,在Oracle中,支持全外联结,即 full outer join;

5、下图可以囊括联结的所有情况

 

 

 

6、交叉联结 CROSS JOIN (也就是耳熟能详的的笛卡尔积),交叉联结的结果是两个表中行数的乘积,交叉联结的结果中包含了内连接,外连接,全连接的所有结果。实际业务中很少会使用交叉联结,因为交叉联结的记过没有实用价值,运算结果函数太多,需要浪费很多运算性能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/707637.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于.net core 七牛云上传多图片

一、基于.net core 七牛云上传图片上传创建七牛云账号,链接:https://portal.qiniu.com/home 新建空间(可以选择华北,可设置公开或私有(公开返回前台不需要token))单图片上传 /// <summary> /// 上传文件 /// </summary> /// <param name="file"…

Hadoop集群配置免密SSH登录方法

K8s集群配置免密ssh登录 K8S集群包含1个主节点和2个从节点,需要实现各节点之间的免密码登录,下面介绍具体的实现方法。 一、K8s集群环境 二、免密登录原理 每台主机authorized_keys文件里面包含的主机(ssh密钥),该主机都能无密码登录,每台主机的authorized_keys文件里面…

element-ui里选择器select多选

select默认情况下都是单选(如上图),但有时候就需要多选,那就需要添加multiple属性,但这样的话数据会一直叠加,把选择框撑大,如下图:这样的话需要添加 collapse-tags 属性将它们合并为一段文字,效果如下:但如果选多了,清除会不方便,那样的话需要添加clearable属性,…

Oracle11g-EXP-00091错误

环境说明 oracle 11g win10 问题情况 在终端中exp导出数据库时,遇到报错“EXP-00091”,按照网上教程修改NLS_LANG但是没有效果。最终原因 在power中设置环境变量NLS_LANG的方法与CMD不一样。 备注记录 先通过服务端查询编码集 select * from nls_database_parameters t where…

Python03判断语句

Python03判断语句 比较运算符if语句

统一文件传输平台如何建设 才能实现文件传输受管、可控、高效?

统一文件传输平台是为了满足企业或组织在不同网络区域间安全、高效地传输文件的需求而设计的系统。这样的平台通常具备以下特点: 1、跨区域传输能力:支持在不同地理位置的分支机构或数据中心之间传输文件。 2、安全性:提供加密传输、用户认证、权限控制等安全特性,确保数据…

基于Vue3水印组件封装:防篡改守护!

基于Vue 3的全新水印通用组件封装。这款组件不仅功能强大,而且易于集成,能够轻松为您在网页任何位置添加自定义水印,有效防止内容被篡改或盗用。基于Vue 3的全新水印通用组件。这款组件不仅功能强大,而且易于集成,能够轻松为您的网页或应用添加自定义水印,有效防止内容被…

在线Base64转文件、文件转Base64工具

在线Base64转换神器,一键实现Base64编码与文件互转!支持图片、文档等各类文件,快速准确,安全无服务器存储。拖拽上传,轻松编码解码,提升开发效率。跨平台兼容,移动端友好,让数据转换再无障碍。在线Base64转文件、文件转Base64工具

怎样统一、高效地实现百台以上的机台设备文件导出?

许多高端制造企业的运转都以机台为基础,如光学仪器制造及研究,晶圆制造,医学设备等,而大型的高端制造业不仅配备机台设备,同时数量也会非常客观,会达到上百台,当企业扩充规模,设立分公司和厂区时,机台设备甚至可达上千台,此时,对于企业而言,机台设备文件导出就会变…

Docker 部署Nacos

1、创建Nacos目录 mkdir /home/docker/nacos2、创建Nacos日志目录 mkdir /home/docker/nacos/logs3、创建Nacos配置目录 mkdir /home/docker/nacos/conf4、创建数据库 /** Copyright 1999-2018 Alibaba Group Holding Ltd.** Licensed under the Apache License, Version 2.0 (…

Python数据分析与挖掘实战(1-3章)

非原创,仅个人关于《Python数据分析与挖掘实战》的学习笔记第一章 基础 略 第二章 数据分析简介 基本概念 元组、列表、字典、集合 函数式编程:map()函数:定义一个函数,然后用map()逐一应用到map列表中的每个元素。map(lambda x+2:a) reduce()函数:用于递归计算。reduce(l…

ASP.NET Core Web中使用AutoMapper进行对象映射

前言 在日常开发中,我们常常需要将一个对象映射到另一个对象,这个过程中可能需要编写大量的重复性代码,如果每次都手动编写,不仅会影响开发效率,而且当项目越来越复杂、庞大的时候还容易出现错误。为了解决这个问题,对象映射库就随之而出了,这些库可以自动完成对象之间的…