left join on and 和 where的区别(深入Oracle的left join中on和where的区别详解)

:暂无数据 2026-04-02 01:20:01 0
有研究表明,成功掌握left join on and 和 where的区别的学习者,普遍在深入Oracle的left join中on和where的区别详解这个环节投入了更多精力。其重要性不言而喻。

本文目录

深入Oracle的left join中on和where的区别详解

在使用left jion时,on和where条件的区别如下:
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left
join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。
假设有两张表:
表1 tab1:
id size
1 10
2 20
3 30
表2 tab2:
size name
10 AAA
20 BBB
20 CCC
两条**L:
1、select * form tab1 left join tab2 on (tab1.size
= tab2.size) where tab2.name=’AAA’
2、select * form tab1 left join tab2 on
(tab1.size = tab2.size and tab2.name=’AAA’)
第一条**L的过程:
1、中间表
on条件:
tab1.size = tab2.size
tab1.id
tab1.size tab2.size tab2.name
1 10
10 AAA
2 20 20
BBB
2 20 20 CCC
3 30 (null) (null)
2、再对中间表过滤
where 条件:
tab2.name=’AAA’
tab1.id tab1.size tab2.size
tab2.name
1 10 10 AAA
第二条**L的过程:
1、中间表
on条件:
tab1.size = tab2.size
and tab2.name=’AAA’
(条件不为真也会返回左表中的记录)
tab1.id tab1.size
tab2.size tab2.name
1 10
10 AAA
2 20
(null) (null)
3 30
(null) (null)
其实以上结果的关键原因就是left join,right join,full
join的特殊性,不管on上的条件是否为真都会返回left或right表中的记录,full则具有left和right的特性的并集。 而inner
jion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的。

sql的join中on和where的区别

join包括:inner join,outer join

outer join又包括了:left outer join,right outer join 和 full outer join

natural on using

1)on条件是在生成临时表时使用的条件, 它不管on中的条件是否为真,都会返回左边表中的记录。

2) where条件是在临时表生成好 后,再对临时表进行过滤的条件 。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

对于这样一个查询 select * from t1 natural left outer join t2 on t1.size=t2.size

on条件下回返回所有的左侧的元素,结果应该包含了(3,30,null)这一元组
对于另一个查询 select * from t1 natural left outer join t2 where t1.size=t2.size

它的结果却并不包含(3,30,null)这一元组,因为在执行where的时候,会在中间表(也就是表1)生成好后,执行过滤条件t1.size=t2.size,很明显这时候t1.size=3而t2..size=null,因此执行后的结果如下:
比较表1和表2会发现表1比表2多了一列,其实这也是on的特性。

在书中写到“on操作中,size出现两次,一次是t1中的,一次是t2中的,即便他们的值是一样的。”
上面的例子印证了一点:所有的外连接条件都必需要放在ON后面,不然前面的所有LEFT,和RIGHT关联将作为摆设,而不起任何作用。而对于普通连接,则几乎没有任何区别。

Oracle的left join中on和where的区别

on 一般用于设置连接条件的,比如学生表和修课表连接时:
学生表 LEFT JOIN 修课表 ON 学生表.学号=修课表学号
WHERE 一般用于设置过滤条件的,比如:WHERE 性别=’男’ AND 成绩》60分

left join 过滤条件写在on后面和写在where 后面的区别

left join中on是在联接表的时候就先对右表进行条件过滤,而where,是在表的串联及过滤完成之后,再对串联后的结果进行过滤。

left join on后面 加条件和where后面加条件的区别

用LEFTJOIN时,条件直接放ON后面,是先筛选后连接,条件放WHERE后面,是先连接后筛选

浅谈,**L语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

你好,left
join,right,full后on和where的区别就在于:
on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录,而where条件是在临时表生成好后,再对临时表进行过滤的条件。
而且除了stu_id=1的那条记录,class表中字段不满足过滤条件的记录(即使被关联到了)全是null,所以on后面的语句最好只写两个表相关联的语句,并不能做单方面的过滤。
也可以这么简单的理解,以坐标为主,先查询出左表的全部记录,然后关联右表,将符合条件的记录的数据填充进查询出来的结果。
right
join

full
join
具有相同的特性,但是inner
join不同,它可以在on
那里做过滤处理,也就是说放在on后面和where后面作用是一样的。
希望对你有帮助

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

原先一直对**L左右连接中的on and和on where的区别不是太了解,直到在网上看到了下面这段话才豁然开朗。
在使用left join时,on and和on where条件的区别如下:
1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。
2、where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有left join的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉,on后的条件用来生成左右表关联的临时表,where后的条件对临时表中的记录进行过滤。

on条件与where条件的区别

on条件与where条件的区别是:

1、on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。where条件是在临时表生成好后,再对临时表进行过滤的条件。这时已经没有leftjoin的含义(必须返回左边表的记录)了,条件不为真的就全部过滤掉。

2、在on后面加条件仅适合用于leftjoin(rightjoin未测,innerjoin与where类似)。

3、不考虑where条件下,leftjoin会把左表所有数据查询出来,on及其后面的条件仅仅会影响右表的数据(符合就显示,不符合全部为null)。

4、where后面加条件与左连接本身无关,影响的是连接产生后的数据。

5、所以左连接关注的是左边的主表数据,不应该把on后面的从表中的条件加到where后,这样会影响原有主表中的数据。

掌握深入Oracle的left join中on和where的区别详解,是深入理解left join on and 和 where的区别的关键一步。现在就开始尝试应用吧!
本文编辑:admin

本文相关文章:


left join on and 和 where的区别(浅谈,**L语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别)

left join on and 和 where的区别(浅谈,**L语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别)

想高效掌握left join on and 和 where的区别的核心吗?本文将为你聚焦浅谈,**L语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别这一关键环节,帮你节省大量摸索时间。

2026年4月3日 02:20

更多文章:


keygen并行配置不正确(应用程序无法启动,因为应用程序的并行配置不正确)

keygen并行配置不正确(应用程序无法启动,因为应用程序的并行配置不正确)

本文旨在为您说清楚两件事:一是keygen并行配置不正确到底是什么,二是如何理解应用程序无法启动,因为应用程序的并行配置不正确。内容不长,但都是干货,希望能对您有所帮助。

2026年4月3日 16:40

教程之家原网页(网页设计教程 设置网页步骤)

教程之家原网页(网页设计教程 设置网页步骤)

本篇关于教程之家原网页的讲解,将摒弃陈词滥调,直击网页设计教程 设置网页步骤这一实战要害,给你可即刻应用的策略。

2026年4月3日 16:20

绝世剑神暗黑火龙(玄幻小说,主角在体内疑具一把能量龙血剑,可外放攻击敌人,书名叫什么)

绝世剑神暗黑火龙(玄幻小说,主角在体内疑具一把能量龙血剑,可外放攻击敌人,书名叫什么)

“绝世剑神暗黑火龙”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看绝世剑神暗黑火龙(玄幻小说,主角在体内疑具一把能量龙血剑,可外放攻击敌人,书名叫什么)!

2026年4月3日 16:00

roundup函数公式(预算计算公式中roundup是什么意思)

roundup函数公式(预算计算公式中roundup是什么意思)

在深入了解roundup函数公式的路上,预算计算公式中roundup是什么意思就像一道绕不开的坎。别担心,本篇攻略将助你轻松跨越。

2026年4月3日 15:40

标题栏文字大小(标题栏的尺寸是什么)

标题栏文字大小(标题栏的尺寸是什么)

大家好,如果您对标题栏文字大小还心存疑问,别着急,今天这篇文章就将围绕标题栏的尺寸是什么为您展开详细解说。

2026年4月3日 15:20

html游戏手机如何打开(如何使html5网页游戏封装成app后在安卓手机上全屏)

html游戏手机如何打开(如何使html5网页游戏封装成app后在安卓手机上全屏)

html游戏手机如何打开的背后,隐藏着怎样的秘密?如何使html5网页游戏封装成app后在安卓手机上全屏又在其中扮演了何种角色?带着疑问,我们一起探秘。

2026年4月3日 15:00

网站url监控源码(怎么从html源码中获取URL链接)

网站url监控源码(怎么从html源码中获取URL链接)

我们注意到,那些在网站url监控源码上表现突出的人,往往都对怎么从html源码中获取URL链接有独到的见解。这并非巧合。

2026年4月3日 14:40

如何优化sql查询语句(数据库中怎么优化**L语句)

如何优化sql查询语句(数据库中怎么优化**L语句)

前几天,一位朋友问我:如何优化sql查询语句到底该怎么学?我只回了他三个字:抓住数据库中怎么优化**L语句。今天就来详细说说为什么。

2026年4月3日 14:20

python 匹配字符串(python如何用正则表达式匹配两个字符串之间的字符串中的某个字符并进行替换)

python 匹配字符串(python如何用正则表达式匹配两个字符串之间的字符串中的某个字符并进行替换)

本篇文章给大家谈谈python 匹配字符串,以及python如何用正则表达式匹配两个字符串之间的字符串中的某个字符并进行替换对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年4月3日 14:00

bat批量移动文件命令(如何批量移动相同前缀名的文件至对应文件夹,请高手帮我写个bat)

bat批量移动文件命令(如何批量移动相同前缀名的文件至对应文件夹,请高手帮我写个bat)

其实bat批量移动文件命令的问题并不复杂,但是又很多的朋友都不太了解如何批量移动相同前缀名的文件至对应文件夹,请高手帮我写个bat,因此呢,今天小编就来为大家分享bat批量移动文件命令的一些知识,希望可以帮助到大家,下面我们一起来看看这个问

2026年4月3日 13:40

最近更新

热门文章

类风湿自测方法(风湿如何确诊)
2026-04-03 11:20:02 浏览:0
jqueryhide原理(在jQuery里$(this).hide()表示什么意思,并且这里面的this指什么东西)
2026-04-02 22:00:02 浏览:0
标签列表