join ... on.... [and] 的理解

Windows沙盒神器Sandboxie Plus保姆级教程:从安装到实战测试可疑软件 本文详细介绍了Windows沙盒神器Sandboxie Plus的安装、配置与实战应用,帮助用户安全测试可疑软件。从系统要求、安装步骤到核心功能如多沙盒管理、文件共享和快照恢复,全面解析了这款轻量级沙盒工具的优势与使用技巧,特别适合需要隔离运行未知程序的用户。 阅读详情

复制代码
CREATE TABLE tb1 (
a_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘序号’,
a_name VARCHAR(50) NOT NULL COMMENT ‘名字’
)
;

CREATE TABLE tb2 (
a_id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT COMMENT ‘序号’,
a_name VARCHAR(50) NOT NULL COMMENT ‘名字’
)
;
复制代码
插入数据:

复制代码
INSERT INTO scrapy.tb1 (a_id, a_name) VALUES (‘001’, ‘孙悟空’);
INSERT INTO scrapy.tb1 (a_id, a_name) VALUES (‘002’, ‘猪八戒’);
INSERT INTO scrapy.tb1 (a_id, a_name) VALUES (‘003’, ‘玉皇大帝’);

INSERT INTO scrapy.tb2 (a_id, a_name) VALUES (‘001’, ‘张君宝’);
INSERT INTO scrapy.tb2 (a_id, a_name) VALUES (‘002’, ‘乔峰’);
INSERT INTO scrapy.tb2 (a_id, a_name) VALUES (‘003’, ‘段正淳’);
复制代码
使用 left … join…on…,不带and

SELECT * FROM tb1 LEFT JOIN tb2 ON tb1.a_id = tb2.a_id
结果
在这里插入图片描述

使用 left … join…on…,带and,并对从表施加条件

SELECT * FROM tb1 LEFT JOIN tb2 ON tb1.a_id=tb2.a_id AND tb2.a_name <> ‘乔峰’
结果:
在这里插入图片描述

使用 left … join…on…,带and,并对主表施加条件

SELECT * FROM tb1 LEFT JOIN tb2 ON tb1.a_id=tb2.a_id AND tb1.a_name <> ‘猪八戒’
结果:
在这里插入图片描述

结论:

由以上对比,on后的条件仅是对从表进行条件筛选。对主表不起作用。这是由于sql的执行顺序决定的,先对两个表tb1和tb2进行 n×m 行的笛卡尔积计算 (SELECT * FROM tb1,tb2),然后用on后边的条件进行过滤,再对主表补充完整。

----------------------------------------------分割线---------------------------------------------------------------------

使用 inner join … on 不带 and

SELECT * FROM tb1 inner JOIN tb2 ON tb1.a_id = tb2.a_id
结果:
在这里插入图片描述

使用 inner join … on ,带 and 并对从表施加条件

在这里插入图片描述

SELECT * FROM tb1 inner JOIN tb2 ON tb1.a_id = tb2.a_id AND tb2.a_name <> ‘乔峰’

结果:
在这里插入图片描述

使用 inner join … on ,带 and 并对主表施加条件

SELECT * FROM tb1 inner JOIN tb2 ON tb1.a_id = tb2.a_id AND tb1.a_name <> ‘猪八戒’

结果:
在这里插入图片描述

结论:从sql执行顺序分析,对量表的笛卡尔积进行了on后的条件筛选。相较于left join没有补充主表的步骤。 故在inner join的on后添加and限制条件的话,等价于直接对笛卡尔积用where语句筛选(SELECT * FROM tb1,tb2 WHERE tb1.a_id = tb2.a_id AND tb1.a_name <> ‘猪八戒’)。

由此看:inner join 相当于left join的子步骤

UVM(5)-TLM通信 TLM是一种基于事务 (transaction) 的通信方式,通常在高抽象级语言例如SystemC或者SV/UVM中作为模块之间的通讯方式。 阅读详情

相关推荐

异步fifo的UVM验证(最终最终版)

更新了refmdl以及scb

qq_44674008的博客 2990

left join on and 和 inner join on and的多条件查询区别

我们都知道 left join 是以左表为基准和其他表进行连接, 返回左表的记录。 而inner join是两张表的交集的记录。 但是当多条件查询时,会怎样呢?先做个测试: person1表的记录: person2表的记录: 先看下left join: 可以看到结果 ,即使在and后面加了过滤条件,依然会返回名称是 小丽 的数据。这是因为左连接是以左边表为基准,无论on后面的条件如何,都会返回左表,然后再根据条件来返回右表。 所以当前例子查询不是小丽的时候,返回了左表数据,但是无法.

xby7437的博客 4060

FreeRTOS实战:STM32CubeMX配置USART+DMA实现高效串口通信(附完整代码)

本文详细介绍了如何使用FreeRTOS和STM32CubeMX配置USART与DMA实现高效串口通信。通过对比轮询、中断和DMA三种模式的性能差异,提供完整的STM32CubeMX配置步骤和代码实现,帮助开发者优化嵌入式系统的串口通信性能,显著提升数据吞吐量和系统响应速度。

weixin_29190169的博客 457

inner join、left join、right join中where和and的作用

inner join(等值连接) 只返回两个表中联结字段相等的行,where和and条件都对整体查询结果有影响。  left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录,这里一并讨论: where条件可以对整体查询结果进行筛选,而and只会对连接的表进行筛选。

醉爱梁静茹 3186

U2Net网络实战:从原理到代码实现(附背景去除应用)

本文深入解析了U2Net网络的原理与代码实现,重点剖析了其独特的嵌套U型结构(RSU模块)和显著图融合机制。通过实战演示,指导读者如何加载预训练模型并应用于精准的图像背景去除任务,为电商、摄影等领域提供高效的自动化抠图解决方案。

nn3456的博客 491

三、Crowd与JIRA、Confluence用户集成并SSO单点登录

补充说明: 通过此方法集成后,用户、组以及用户和组的关系都在Crowd系统中存储,但各个系统的权限仍由各系统控制,也可在JIRA和Confluence中添加和删除用户。 在做步骤4和步骤5的时候,要特别小心,确保当前系统的超级权限用户(一般为admin,具体看当前系统的全局权限配置)和组以及它们的关系已经在Crowd中同样存在了,才可切换并禁用当前系统的内部用户目录,否则可能造成权限丢失等严重问题(因为禁用了内部用户目录,而Crowd中又不存在这个超级权限用户和组或它们的关系,所以权限就丢失了) 维护示例

weixin_38621072的博客 2989

SQL 中JOIN ON 的AND条件设置

关于在A LEFT JOIN B ON A.id =B.id 后面跟AND 条件的测试。 有如下的结构数据: 注意此LEFT ON 跟AND 限制A表的场景; dat a.sql 1.43KB 有如下的表结构 使用SQL进行查询: (1)SELECT * FROM `table_name` a LEFT JOIN table_age b ON a.id = b.id; (2)SELECT * FROM `table_name` a LEFT JOIN tab...

tjbsl的博客 6362

看我如何用kali实时截获隔壁"小姐姐"的上网隐私(结尾有彩蛋)

看我如何用kali实时截获隔壁&amp;amp;amp;quot;小姐姐&amp;amp;amp;quot;的手机图片等信息(结尾有彩蛋哦) 首先圈下重点:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或...

SoulCat 2万+

join后 on , and ,where 实例测试

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

阿昊的博客 1705

金蝶Apusic应用服务器 未授权目录遍历漏洞复现

由于金蝶Apusic应用服务器/admin/protected/selector/server_file/files、/admin/protected/selector/server_file/folders 等接口没有进行校验和过滤,直接将参数拼接到文件操作中,导致出现目录遍历漏洞,未经身份验证的远程攻击者可通过此漏洞读取系统内部系统文件路径及信息,导致信息泄露,系统处于极不安全状态。

0xSec 2175

piamon实战-- 如何使用 Paimon 的 Java API 实现数据的点查

点查(Point Lookup)是指通过 ​​唯一键(Primary Key)​​ 快速定位并返回单条或少量数据的查询模式。例如:根据用户 ID 查询用户信息、根据订单号查询订单详情等。点查的核心诉求是 ​​低延迟​​ 和 ​​高吞吐​​,适用于实时风控、在线分析等场景。​​定义主键表结构​​,优化数据分布。​​构建过滤条件​​,使用指定查询键。​​执行查询并处理结果​​,结合流式更新实现实时查询。

阿华田的博客 535

对left join on and、left join on where的理解

在使用left jion时,on和where条件的区别如下: 1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。 2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。 注:https://www.cnblogs.com/caowenhao/p/80...

l_degege的专栏 565

SerDes电路的PCB仿真设计规则及策略

SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。

一只豌豆象的博客 2193

关于SQL Server中left join on and 用法的介绍

一般情况下,SQL语句的执行顺序如下所示: (1)from (2)on (3)join (4)where (5)group by (6)having (7)select (8)distinct (9)union (10)order by 从SQL语句执行顺序的这个角度,我们可以很好的理解left join on and的用法。 以SQL Server为例,先创建两个测...

Backcanhave7 1万+

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

hive面试题——LEFT JOIN ON后面加WHERE或者AND

笔试的时候会碰到join on后面会跟where或者and的笔试题,刚开始以为是一样的,但是后面本人测试了一下,发现不一样,现做一下记录,方便自己记忆,也希望给不了解的看官介绍一下,了解的看官温故知新。 目录 数据准备 验证内容 LEFT JOIN(RIGHT JOIN)验证 LEFT JOIN(RIGHT JOIN)只带ON的HQL LEFT JOIN(RIGHT JOIN)只ON和...

滴水穿石的启示 1640

Oracle <left> join on where 先过滤还是先join

and右表筛选说明and 也是先筛选--where 是后过滤为什么是对生成的过滤不是 先过滤再join?

jnrjian的博客 1671

LEFT JOIN ON .. AND 小笔记

在实际开发中遇到一个问题。一共三个表。基于一些神奇的协议,表不好放出来。但可以简单谈谈结构 表:MR_APPLICATION、MR_REPORT、MR_PACS_RESOURCE 他们都有一个共同的字段:DELETE_FLAG 逻辑删除字段。俩前者我所操作的数据,都为0,最后者为1 1是0否 我想要实现的是:无论MR_REPORT里面是否有所匹配的数据,都需要返回前二者表中数据 正确的SQL实现: SELECT MA.xx, MPR.xxx, M

qq_37231612的博客 388

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 ...

了解—学习—进步—满足 577

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

数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就...

242

SQL on and 和 on where 的区别

on and 和 on where 的 区别 在使用left join时, on and 和on where会有区别;1. on的条件是在连接生成临时表时使用的条件,以左表为基准 ,不管on中的条件真否,都会返回左表中的记录  on 后面 and 都是对右表进行筛选 2.where是全部连接完后,对临时表进行筛选,筛选对左表和右表都有效 在使用inner join时,on...

weixin_30613727的博客 168

Oracle关于left join on…and 及 left join on...whe...

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33800593的博客 349

left join on 后and 和 where 的区别

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

fengj的盛夏 771

SQL左右连接中的on and和on where区别

转载地址:https://blog.csdn.net/xingzhemoluo/article/details/39677891 在使用left  join时,on  and与on  where条件的区别: 1、on条件是在生成临时表时使用的条件,不管on中的条件是否为真,都会返回左边中的记录。(实际上左连接中如果and语句是对左表进行过滤的,那么不管真假都不起任何作用。如果是对右表过滤的,那...

sunny1660的博客 1614

oracle on and,Oracle编程:关于LEFT JOIN...ON...AND...及LEFT JOIN...ON...WHERE...的区别

关于leftjoin...on...and...以及left join...on...where的区别,网上很多的说法是对于leftjoin...on...and...,and所限定的条件只对关联字段起作用,比如select a.* from tmp_table_aa left join tmp_table_b b on a.col1=b.col1 andb.col2=xx,很多人认为条件b.co...

weixin_42185419的博客 694

left join on 后 and 和where 的区别

SELECT * FROM student a LEFT JOIN sc b ON a.Sid = b.Sid AND a.Sname="赵雷" 结果:(left join 左连接,左表所有数据 拼接 右表符合on条件的数据。on后用and连接,‘a.Sid = b.Sid AND a.Sname="赵雷"’都作为on条件)  SELECT * FROM student a LEFT JO...

上善若泪 1659
上一篇: SQL-PLUS输出存储过程
下一篇: 建表语句记录
普通网友
博客等级 码龄6年 137粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值