Join and Where

与rkipc通信 函数名称功能系统模块初始化系统模块反初始化重启恢复出厂设置导出日志导出配置文件导入配置文件系统升级获取用户数设置用户数获取用户权限设置用户权限获取用户名设置用户名获取密码(已加密)设置密码(已加密)新增用户删除用户。 阅读详情

JOIN & WHERE

Explanation

Details

left join

left outer join

(左联接) 

返回包括左表中的所有记录和右表中联结字段相等的记录 

左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

right join

right outer join

(右联接) 

返回包括右表中的所有记录和左表中联结字段相等的记录

右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

inner join

(等值连接)

只返回两个表中联结字段相等的行

WHERE 和INNER JOIN产生的连接关系,本质区别不详,结果一样。

(1)在效率上,Where可能具有和Inner join一样的效率。但基本可以肯定的(通过SQLServer帮助和其它资料,以及本测试)是Join的效率不比Where差。

(2)使用Join可以帮助检查语句中的无效或者误写的关联条件。

(3)从可读性角度来看,Where更直观。

full join

full outer join

(全连接)

完整外部联接返回左表和右表中的所有行

当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

Join & where总结:

where是两个表中的数据满足共同条件才会显示。
Jion on是相同条件匹配。

因此,除了inner join结果通常不一样。

Jion 显示的内容 >= where 条件显示的内容。



举例说明

Table : PERSONS

PERSON_ID

NAME

CITY 

1

Jhon 

London  

2

Danny

New York

3

Tom  

Beijing 

4

Candy

Dalian  

5

Venus

Chengdu 

6

Lobna

Shanghai



Table : ORDERS

ORDER_ID

BOOK_NUMBER

PERSON_ID

1

111111

1

2

222222

1

3

333333

2

4

444444

2

5

555555

3

6

666666

4

7

777777

7

8

888888

9

9

999999

9



1) select * from cid.orders left join cid.persons on cid.orders.person_id = cid.persons.person_id;

ORDER_ID

BOOK_NUMBER

PERSON_ID

PERSON_ID

NAME

CITY

1

111111

1

1

Jhon

London

2

222222

1

1

Jhon

London

3

333333

2

2

Danny

New York

4

444444

2

2

Danny

New York

5

555555

3

3

Tom

Beijing

6

666666

4

4

Candy

Dalian

7

777777

7

(null)

(null)

(null)

8

888888

9

(null)

(null)

(null)

9

999999

9

(null)

(null)

(null)



2) select * from cid.orders right join cid.persons on cid.orders.person_id = cid.persons.person_id;

ORDER_ID

BOOK_NUMBER

PERSON_ID

PERSON_ID

NAME

CITY

1

111111

1

1

Jhon

London

2

222222

1

1

Jhon

London

3

333333

2

2

Danny

New York

4

444444

2

2

Danny

New York

5

555555

3

3

Tom

Beijing

6

666666

4

4

Candy

Dalian

(null)

(null)

(null)

5

Venus

Chengdu

(null)

(null)

(null)

6

Lobna

Shanghai



3) select * from cid.orders inner join cid.persons on cid.orders.person_id = cid.persons.person_id;

ORDER_ID

BOOK_NUMBER

PERSON_ID

PERSON_ID

NAME

CITY

1

111111

1

1

Jhon

London

2

222222

1

1

Jhon

London

3

333333

2

2

Danny

New York

4

444444

2

2

Danny

New York

5

555555

3

3

Tom

Beijing

6

666666

4

4

Candy

Dalian



4) select * from cid.orders full outer join cid.persons on cid.orders.person_id = cid.persons.person_id;

ORDER_ID

BOOK_NUMBER

PERSON_ID

PERSON_ID

NAME

CITY

1

111111

1

1

Jhon

London

2

222222

1

1

Jhon

London

3

333333

2

2

Danny

New York

4

444444

2

2

Danny

New York

5

555555

3

3

Tom

Beijing

6

666666

4

4

Candy

Dalian

(null)

(null)

(null)

5

Venus

Chengdu

(null)

(null)

(null)

6

Lobna

Shanghai

7

777777

7

(null)

(null)

(null)

8

888888

9

(null)

(null)

(null)

9

999999

9

(null)

(null)

(null)



5) select * from cid.orders, cid.persons where cid.orders.person_id = cid.persons.person_id;

ORDER_ID

BOOK_NUMBER

PERSON_ID

PERSON_ID

NAME

CITY

1

111111

1

1

Jhon

London

2

222222

1

1

Jhon

London

3

333333

2

2

Danny

New York

4

444444

2

2

Danny

New York

5

555555

3

3

Tom

Beijing

6

666666

4

4

Candy

Dalian

3.4 ISIS和OSPF之间路由引入 通过以上输出可以看到OSPF的路由引入到了IS-IS中。通过以上输出可以看到ISIS的路由没有传递给OSPF。通过以上输出可以看到OSPF的路由没有传递给ISIS。通过以上输出可以看到ISIS的路由被引入进了OSPF。掌握在IS-IS中引入OSPF路由的方法。掌握在OSPF中引入IS-IS路由的方法。图3-3:ISIS和OSPF之间路由引入。在R3上把ISIS的路由引入到OSPF。OSPF引入外部路由的缺省度量值为1。在R3上把OSPF的路由引入到ISIS。引入的外部路由类型为Type2。 阅读详情

相关推荐

基于STM32F407VET6的智能巡检小车灰度循迹系统优化设计

本文详细介绍了基于STM32F407VET6主控芯片的智能巡检小车灰度循迹系统优化设计。通过将传感器输出从数字量升级为模拟量以获取更丰富的路面信息,并采用PD控制算法结合速度管理策略,有效提升了小车在复杂弯道上的循迹稳定性与适应性。文章分享了硬件电路抗干扰设计、软件滤波及实战调优经验,为嵌入式开发者提供了从“能跑”到“跑得稳”的系统性解决方案。

weixin_28273593的博客 443

从数据库中随机查询记录,使用JOIN比使用WHERE的效率要好

现在有这样的业务场景,从一个内容表中随机查询一条数据,并且随机查随出来的记录还不能够是已经使用了的记录,这里有一个专门的表记录了哪些记录是使用了,也就是在做这样的随机查询的时候,还需要关联发送记录保存表,这样才可以确保查询出来的记录是没有被使用过的。     使用的数据库是MYSQL5.5,内容表有2万多条记录,保存发送记录的表只有数10条记录,以下是分别是直接使用where和使用join的测试

冯立彬的博客 3376

LSM6DS3TR-C IMU传感器入门:从MEMS原理到姿态解算实战

惯性测量单元(IMU)是现代智能设备实现运动感知的核心部件,其基础原理基于微机电系统(MEMS)技术。MEMS加速度计通过检测质量块在惯性力作用下的位移来测量线性加速度,而陀螺仪则利用科里奥利力效应感知角速度。这种技术使得微型化、低成本的6自由度运动测量成为可能,为机器人、无人机、可穿戴设备等提供了关键的空间姿态和运动状态信息。在实际工程中,开发者需要掌握I2C/SPI通信协议、传感器数据读取与校准,并通过互补滤波等算法融合加速度计和陀螺仪数据,实现稳定的姿态解算。LSM6DS3TR-C作为一款高性价比的6

weixin_28684655的博客 596

Inner Join和Where的差别值得注意

 Inner Join和Where的差别值得注意 尽管两者的使用有时候可以得到相同的结果,但使用上值得注意: 以下是网上的资料:  尽量使用Join 而不是Where来列出关联条件,特别是多个表联合的时候。原因是:(1)一般来说,在效率上,Inner join的效率要比Where高。 (2)一般来说,使用Join可以帮助检查语句中的无效或者误写的关联条件。 

李蓝箫 3155

非root用户如何在CentOS7集群上编译安装OpenFOAM6

本文详细介绍了在CentOS7集群上以非root用户身份编译安装OpenFOAM6的完整流程。通过环境准备、依赖包离线获取、源码编译安装等步骤,解决了集群环境下权限和依赖问题,特别针对OpenMPI和Boost库提供了优化配置建议,帮助用户高效完成安装并优化性能。

weixin_28826961的博客 681

Claude AI实战指南:从注册到精通,突破手机验证的终极解决方案

本文提供了一份详尽的Claude AI实战指南,重点解决了国内用户注册过程中的手机号验证难题,并分享了使用技巧。文章详细介绍了如何通过虚拟手机号服务等方案完成注册,并深入解析了Opus、Sonnet、Haiku三大模型的特点与选择策略,帮助用户从注册到精通,高效利用这一安全、健谈的AI助手进行内容创作、编程开发与学习研究。

weixin_29092031的博客 1232

SQL Server 中Inner join 和where的效率差异

今天,手头上正在作的一个项目,在生成报表时,客户感觉太慢,于是,各处检查,看可否提示效率。界面上的都改进了,提升不大。如是在SQL 语句上下功夫。(我这人比较懒,对简单的语句和查询都没有经过仔细优化的,一般只对姚使用left join,outer join,group by 以及carsor的语句会仔细写并用数据库理论考虑和检查---因为这种语句一般测试时如果发现错误,检查和调试很麻烦)...

weixin_30911809的博客 503

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

单片机:实现MPU6050的卡尔曼滤波算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 798

【HiveSQL】join关联on和where的区别及效率对比

假设数据库系统支持谓词下推的前提下,内连接:内连接的两个执行计划中,对t2表都使用了,对t1表都使用了,因此可以说,内连接中where和on在执行效率上没区别。外连接:还是拿左外连接来说,右表相关的条件会使用谓词下推,而左表是否会提前过滤数据,取决于where还是on以及筛选条件是否与左表相关,1)当为on时,左表的数据必须全量读取,此时效率的差别主要取决于左表的数据量。2)当为where时,如果筛选条件涉及到左表,则会进行数据的提前过滤,否则左表仍然全量读取。

atwdy的博客 3357

YOLOv11涨点改进 | Neck改进篇 | YOLOv11引入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率

本文介绍了基于BiFPN特征融合模块优化的YOLOv11目标检测模型。BiFPN通过双向跨尺度连接和加权特征融合机制,显著提升了多尺度特征融合效率。该方法在COCO数据集上实现了55.1AP的检测精度,同时大幅降低计算成本(减少13-42倍FLOPs)。文章详细解析了BiFPN模块结构、核心代码实现方法,并提供了YOLOv11-BiFPN配置文件的修改指导,为计算机视觉领域提供了一种高效的目标检测解决方案。

Ai缝合怪、助力小伙伴高效发论文 717

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

【WorkBuddy专栏15】灵感被折叠到「更多」里,真的不重要了吗?——一个「被低估」功能的当下价值与未来演变

AI人人懂 962

关于Join的时候where在on之前和之后的效率测试

看到很多网友在说join的时候,where一定要在on的条件之前,这样可以起到优化左右,比如有同学这样说(如下截图),其实不然,对此我做了实验 为验证此结论我选择了一个大表进行数据验证,进行了sparksql查询 sql1是这样的,where在on前面 select t1.c0 , t1.c1 , t1.c2 , t1.c3 , t1.c4 , t1.c5 , t1.c6 , t1.c7 , t1.c8 , t1.c9 , t1.c10 , t1.c11 , t1.c12 , t1.c13

liu82327114的博客 3941

【Claude Code】Unable to connect to API 报错原因与排查解决全流程

深入分析 Claude Code 中 Unable to connect to API 系列报错的根因,涵盖 ECONNREFUSED、ECONNRESET、ETIMEDOUT 等 6 种变体,提供从网络连通性检测、代理配置到 LLM 网关路由的完整排查路径,帮助开发者快速恢复 Claude Code 的正常使用。

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 2851

join后 on , and ,where 实例测试

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。 在使用left jion时,on和where条件的区别如下: 1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。 其实以上结果的关键原因就是left join,right join,full join的特殊性,

阿昊的博客 1705

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

oracle--left join and 和left join where的区别

开发程序时,经常会遇到left join,inner join的语句,Join是关系型数据库系统的重要操作之一,相对来说速度要快一些,所以大家一般都会优先选择join语句。      但是在做程序时,对于join的一些用法却不一定很清晰。今天给大家讲的是left join and 和left join where。      数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临

1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

MYSQL 中 LEFT JOIN ON 后的AND 和WHERE

表1 app_notification_user,里面有两条数据:表2 app_notification, 里面有一条数据语句1:SELECT anu.id,anu.app_notification_id,anu.`status`,an.*  FROM app_notification_user anu LEFT JOIN app_notification an ON anu.app_not...

didiliu_1111的博客 1万+

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

left join on and 和 left join on where的区别

一、left join on on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 二、left join on and (1)如果and语句是对左表进行过滤的,那么不管真假都不起任何作用。 (2)如果and语句是对右表过滤的,那么左表所有记录都返回,右表筛选以后再与左表连接返回。 三、left join on where where条件是在...

hkhhkb的博客 7156

MYSQL join..on 后的and 和where的区别

今天在写SQL的时候发现一个问题  明明加了条件却还是筛选出来了 运行平台:Mysql 目的:比较join......on 后面的and 和where的区别 用AND后的SQL和结果集。还是有383这条结果集 用where后的SQL和结果集。没有了这条记录 结论 1.where 是在两个表join完成后,再附上where条件 2.而 and 则

晨韵风的博客 2万+

SQL JOIN语法及JOIN where 和and区别

语法 join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。 Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果。我们就需要执行 join。 数据库中的表可通过键将彼此联系起来。主键(Primary Key)是一个列,在这个列中的每一行的值都是唯一的。在表中,每个主键的值都是唯一的。这样做的目的是在不重复每个表中的所有数据的情况下,把表间的数据交叉捆绑在一起。 请看 "Persons" 表: Id_P LastName FirstName

m0_61607827的博客 2193

Mysql关于join on where(and)的区别

Macall...

macallbobo的专栏 1325

mysql中join连接后的条件筛选使用where和and的区别

mysql中join连接后的条件筛选使用where和and的区别 1. join 和 inner join 在 join 和 inner join 中where和and的查询结果相同,都是取连接后的结果再进行条件筛选 select m.menu_id,m.sort_id,s.sort_id,s.sort_name from menu m join sort s on m.sort_id=s.sort_id and m.sort_id=2; select m.menu_id,m.sort_id,s.sor

weixin_45394138的博客 4513

join on 后跟or有什么用_left join on 后and 和 where 的区别

left join on 后and 和 where 的区别俩者放置相同条件,但是结果集不同,就是由于优先级不同,on的优先级高于where的。首先得明确俩个概念使用 left join 会返回左表中所有的数据,及时右表中没有匹配的行。俩个表关联查询时,首先生成一张临时表,然后再将这张临时表返回。俩者的区别and 是在生成临时表时候起作用的,不管条件是否成立,都会返回左表中的全部数据。where 是...

weixin_39946355的博客 4913

MySQL left join中and和where的区别

INNER JOIN中and和where没有什么区别,都是取交集的数据。 RIGHT JOIN和LIFT JOIN中and和where的效果基本相同,主要一个是左边表,另一个是右边表。 数据表 a表 b表 SELECT * FROM a LEFT JOIN b on a.id=b.id; =>表示查询显示a表所有的数据,b表查询仅显示a.id=b.id的数据 SELECT * FROM a LEFT JOIN b on a.id=b.id WHERE b.id&...

笑々笑的博客 3024

left join on 后and 和 where 的区别

left join on 后and 和 where 的区别 俩者放置相同条件,但是结果集不同,就是由于优先级不同,on的优先级高于where的。 首先得明确俩个概念 使用 left join 会返回左表中所有的数据,及时右表中没有匹配的行。 俩个表关联查询时,首先生成一张临时表,然后再将这张临时表返回。 俩者的区别 and 是在生成临时表时候起作用的,不管条件是否成立,都会返回左表中的全部...

fengj的盛夏 771

SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

今天的工作学习之路是一个数据库的小知识,当时没有区分出所以然,特此记录分享一下子。   众所周知,数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到...

qq_37306041的博客 713

join and PK where and

ONE .left join andleft join and也是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join and是以左表为准的。换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.ID = B.ID)。B表记录不足的地方均为NULL,加上and条件后,A表记录也将全部被表示出来,而B表只会将符合条件的记录显示出来,B表

qfzhangwei的专栏 490
上一篇: 你真的很幸运--因为你看到了我花6K+6天痛苦才换来的文章
下一篇: DDL、DML和DCL的理解
jsfzdd
博客等级 码龄20年 75粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值