SQL各种Join用法(Full,Left,Out,Inner)--转

a. CROSS JOIN 笛卡尔积
如果不带WHERE条件子句,它将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积;


举例,下列A、B、C 执行结果相同,但是效率不一样:
A:SELECT * FROM table1 CROSS JOIN table2
B:SELECT * FROM table1,table2

C:select * from table1 a inner join table2 b


A:select a.*,b.* from table1 a,table2 b where a.id=b.id
B:select * from table1 a cross join table2 b where a.id=b.id (
注:cross join后加条件只能用where,不能用on)
C:select * from table1 a inner join table2 b on a.id=b.id


一般不建议使用方法A和B,因为如果有WHERE子句的话,往往会先生成两个表行数乘积的行的数据表然后才根据WHERE条件从中选择。
因此,如果两个需要求交际的表太大,将会非常非常慢,不建议使用。


b. 内连接INNER JOIN
两边表同时符合条件的组合

如果仅仅使用
SELECT * FROM table1 INNER JOIN table2

内连接如果没有指定连接条件的话,和笛卡尔积的交叉连接结果一样,但是不同于笛卡尔积的地方是,没有笛卡尔积那么复杂要先生成行数乘积的数据表,内连接的效率要高于笛卡尔积的交叉连接。

但是通常情况下,使用INNER JOIN需要指定连接条件。

***************关于等值连接和自然连接

等值连接(=号应用于连接条件, 不会去除重复的列)

自然连接(会去除重复的列)

数据库的连接运算都是自然连接,因为不允许有重复的行(元组)存在。
例如:

SELECT * FROM table1 AS a INNER JOIN table2 AS b on a.column=b.column

c.
外连接OUTER JOIN
指定条件的内连接,仅仅返回符合连接条件的条目。

外连接则不同,返回的结果不仅包含符合连接条件的行,而且包括左表(左外连接时), 右表(右连接时)或者两边连接(全外连接时)的所有数据行。

1)左外连接LEFT [OUTER] JOIN
显示符合条件的数据行,同时显示左边数据表不符合条件的数据行,右边没有对应的条目显示
NULL
例如

SELECT * FROM table1 AS a LEFT [OUTER] JOIN ON a.column=b.column
2)
右外连接RIGHT [OUTER] JOIN
显示符合条件的数据行,同时显示右边数据表不符合条件的数据行,左边没有对应的条目显示
NULL
例如

SELECT * FROM table1 AS a RIGHT [OUTER] JOIN ON a.column=b.column
3)
全外连接full [outer] join
显示符合条件的数据行,同时显示左右不符合条件的数据行,相应的左右两边显示NULL,即显示左连接、右连接和内连接的并集

SQL FULL OUTER JOIN 关键字 JOIN 类型返回内容INNER JOIN两个表的交集部分,匹配的记录LEFT JOIN左表的所有记录,以及匹配的右表记录RIGHT JOIN右表的所有记录,以及匹配的左表记录两个表的并集部分,包含匹配和未匹配记录。 阅读详情

相关推荐

PCB过孔全介绍

过孔(via)是多层PCB的重要组成部分之一,钻孔的费用通常占PCB制板费用的30%到40%。简单的说来,PCB上的每一个孔都可以称之为过孔。从作用上看,过孔可以分成两类:一是用作各层间的电气连接;二是用作器件的固定或定位。如果从工艺制程上来说,这些过孔一般又分为三类,即盲孔(blind via)、埋孔(buried via)和通孔(through via)。盲孔位于印刷线路板的顶层和底层表面,具

小王的自我修行路 2357

SQL:OUTER JOIN用法详解

SQL--JOIN用法 外联接。外联接可以是左向外联接、右向外联接或完整外部联接。  在 FROM 子句中指定外联接时,可以由下列几组关键字中的一组指定: LEFT JOIN 或 LEFT OUTER JOIN。  左向外联接的结果集包括 LEFT OUTER 子句中指定的匹配条件的行和左表的所有行。 RIGHT JOIN 或 RIGHT OUTER JOIN。  右向

Stay Hungry Stay Foolish 3万+

Labview实现服务器(server)与多客户端(clients)通信

服务器可以接收多个客户端发送的消息,并显示消息来源。 服务器可以发送消息到指定客户端 客户端可以自动连接服务器,断连后重连 客户端可以发送消息到服务器,可接收服务器消息 类似框架可以用做中央服务器及客户端项目

u013809089的博客 7976

干货 | SQL 外部联接 Outer Join

我们希望今天的文章能够帮助你了解外部联接在查询中的用途和用法。最后一件要注意的事:外部联接可能会产生非常大的结果集,因此要谨慎使用它们,并加入筛选子句(例如 WHERE)以尽量减少返回的行数。

Navicat 官方账号 4355

图信号处理中的多尺度分析:图小波变换与图傅里叶变换的对比与应用

本文深入探讨了图信号处理中的多尺度分析方法,重点对比了图小波变换(GWT)与图傅里叶变换(GFT)的技术特点与应用场景。通过分析图的拓扑结构,GWT展现出强大的局部洞察力,适用于异常检测和社区发现;而GFT则擅长全局频率分析,适合趋势分析和信号去噪。文章结合实战案例,为读者提供了方法选型指南和前沿进展,帮助开发者在生物信息学、社交网络分析等领域高效应用这些技术。

weixin_30369041的博客 406

python操作git推送自己分支并合并主分支(持续优化该工具)

python git

qq_44707265的博客 862

Sql 中内连接、外连接、全连接、交叉连接的区别

外连接(out join) 外连接分为外左连接(left outer join)和外右连接(right outer join) 注释:left outer join 与 left join 等价,    一般写成left join             right outer join 与 right join等价,一般写成right join 左连接,取左边的表的全部,右边的表按条件...

Stay Hungry 9万+

RAGFlow 系列教程 第14课:GraphRAG -- 知识图谱增强检索

RAGFlow v0.25.0深度解读了GraphRAG技术,通过构建知识图谱解决传统RAG在多跳推理问题上的局限。系统支持General GraphRAG和Light GraphRAG两种实现,包含四阶段构建流程:实体关系抽取、实体消解、社区检测和图持久化。核心代码位于rag/graphrag目录,采用LLM驱动的抽取机制,结合编辑距离和LLM确认的实体消解策略,以及Leiden社区检测算法。KGSearch模块通过多信号融合检索(实体+关系+N-hop+社区)实现高效查询。该系统将非结构化文本转化为可推

weixin_43674738的博客 101

SQL join 用法全集 inner join、full out join、left join、right join

一、两表交集,内连接 INNER JOIN select a.column_name , b.column_name from table1 a INNER JOIN table2 b ON a.column_name = b.column_name 二、左连接 LEFT JOIN select a.column_name , b.column_name from table1 a LEFT ...

weixin_41999297的博客 459

SAP_ABAP_SD_BAPI清单案例教程——销售订单开票_BAPI_BILLINGDOC_CREATEMULTIPLE_VF01_S4版本

SAP BAPI(Business Application Programming Interface)是SAP系统中的一组规范和标准,用于从SAP系统中获取数据、输入数据和更新数据。这些API允许开发者以编程方式与SAP系统交互,而无需编写大量的自定义代码。2.1 Copy代码 直接可使用。2.2 VF01开票。

java_zhong1990的专栏 2214

传感器校准与标定:传感器的灵敏度校准_(11).常见传感器的灵敏度校准方法

线性校准:适用于传感器输出与输入之间存在线性关系的情况。通过收集数据并使用最小二乘法拟合线性方程,可以确定斜率和截距,从而实现校准。非线性校准:适用于传感器输出与输入之间存在非线性关系的情况。通过收集数据并使用非线性拟合方法(如最小二乘法),可以确定多项式或其他非线性方程的参数,从而实现校准。温度补偿校准:适用于传感器在不同温度下输出特性变化的情况。通过收集不同温度下的数据并使用温度补偿方程,可以提高传感器在不同温度下的测量精度。其他校准方法。

2401_87715305的博客 917

SQL中join的用法解析(inner join、full out join、left join)

话不多说,先上个对于各种join情况的总结图: 例如有如下关系的数据: 1、inner join select * from Table_a join Table_b on Table_a.id_a = Table_b.id_b 2.1、full outer join等于full join select * from Table_a full join Table_b on Table...

Megustas_JJC的博客 1万+

风机叶片小规模振动监测数据集--读取测试

ETH风电叶片缺陷数据集–读取测试 数据简介 提示:这里可以添加本文要记录的大概内容: 结构健康监测是保障重要机电设备、建筑设施健康的重要技术手段。 一、lvm_read包安装 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务

cnjs1994的博客 2851

[498]left join、inner join、right join、full outer join的区别

sql的left join 、right join 、inner join之间的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录 inner join(等值连接) 只返回两个表中联结字段相等的行 t_user表 t_class表 sql语句:(左联结) select u...

周小董 5855

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

sql语句(left join,inner join,right join,outer join)

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各...

踟蹰千年的博客 1313

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

图解SQL的inner join、left join、right join、full outer join、union、union all的区别

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各...

hknaruto的专栏 589

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

案例理解LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法

文章目录建立相关表七大JOINInner JOINLeft JOINLeft Excluding JOINRight JOINRight Excluding JOINFULL Outer JOINFULL Outer Excluding JOIN 本文将着重分析下图中联合查询的用法: 图片来源: 一张图看懂 SQL 的各种 JOIN 用法 。 建立相关表 在理解之前,我们首先建立相关的表,首先建立学生表: create table student( stuNo char(5) primary key,

码匀的博客 2754

inner join 和 outer join 的区别

假设你要join两个没有重复列的表,这是最常见的情况: inner join  A 和 B 获得的是A和B的交集(intersect),即韦恩图(venn diagram) 相交的部分. outer join A和B获得的是A和B的并集(union), 即韦恩图(venn diagram)的所有部分. 示例 假定有两张表,每张表只有一列,列数据如下:

Youmoo的专栏 1万+

Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别

转载来源 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过韦恩图(Venn diagram,可用来表示多个集合之间的逻辑关系)。解释了SQL的Join。我觉得清楚易懂,转过来。 假设我们有两张表。...

a54328的博客 278

详解INNER JOIN、LEFT JOIN、RIGHT JOIN、FULL OUTER JOIN(有图)

工作中经常遇到inner join(等值连接) 、 left join(左连接) 、 right join(右连接)语句,但是一直对其不是很了解,所以今天花点时间好好整理一下  left join 返回包括左表中的所有记录和右表中联结字段相等的记录         right join 返回包括右表中的所有记录和左表中联结字段相等的记录        inner join 只返回两个表中联结字段...

Yonas刘 1109

SQL小白也能懂:图解FULL OUTER JOIN原理

FULL OUTER JOIN(全外连接)就像把两个表格的数据全部摊开,不管有没有匹配项都会显示。用维恩图来解释特别直观:左边圆圈代表表A,右边圆圈代表表B,两个圆圈合并后的全部区域就是结果集。匹配成功的数据:两个表中共有的记录会合并成一行不匹配的数据:某个表独有的记录会保留,另一表的字段显示为NULL。

MoonbeamRaven28的博客 819

mysql select left [outer] join_Mysql: 图解 inner join、left join、right join、full outer join、union、union...

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过韦恩图(Venn diagram,可用来表示多个集合之间的逻辑关系)。解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表。Table A 是左边的表。T...

weixin_29291573的博客 271

Left join right join inner join outer join

  假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同 A表 id name 1 Pirate 2 Monkey 3 ...

KamRoseLee的博客 415

#程序员 #编程 #AI 数据库各种join的解析 left join out join 等的解析

#程序员 #编程 #AI 数据库各种join的解析 left join out join 等的解析

2501_93200149的博客 1047

full join 和full outer join_理解 SQL 中的各类 JOIN

最近比较头疼 JOIN 的用法和结果,写这篇文章是为了总结归纳阅读的资料。在本文中,将以 MySQL 语法为例。例子中使用的表我们有两张表,分别为 product 与 price,结构如下所示 (price 表中的 id 是外键):mysql我们在表里插入了一些数据:mysqlMySQL 中的 JOIN 类型下面是 MySQL 8.0 中的 JOIN 语法[1]:joined_table根据语法,...

weixin_39942572的博客 943
上一篇: 使用on delete cascade和on delete set null建立外键(转)
下一篇: Oracle学习之存储过程(转)
wangshuxing
博客等级 码龄20年 5粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值