SQL语句中on和where的用法区别讲解

这篇博客参考了网上的,具体哪一篇是原稿,不知道,特此声明。

数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。

相关mysql视频教程推荐:《mysql教程》

下面以使用left jion时,on和where条件的区别如下:

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

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

假设有两张表:

表1:tab2

id

size

1

10

2

20

3

30

表2:tab2

size

name

10

AAA

20

BBB

20

CCC

两条SQL:

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’)

登录后复制

第一条SQL的过程:

1、中间表on条件: tab1.size = tab2.sizetab1.idtab1.sizetab2.sizetab2.name11010AAA22020BBB22020CCC330(null)(null)||2、再对中间表过滤where 条件(此时不为真的行会被过滤掉):tab2.name=’AAA’tab1.idtab1.sizetab2.sizetab2.name11010AAA 

第二条SQL的过程:

1、中间表on条件: tab1.size = tab2.size and tab2.name=’AAA’(条件不为真也会返回左表中的记录)tab1.idtab1.sizetab2.sizetab2.name11010AAA220(null)(null)330(null)(null)

其实以上结果的关键原因就是left join,right join,full join的特殊性,不管on上的条件是否为真都会返回leftright表中的记录,full则具有left和right的特性的并集。 而inner jion没这个特殊性,则条件放在on中和where中,返回的结果集是相同的

总结:

总的来说,就是where语句会过滤掉含NULL的行数(条件为假的行数)。所以在FULL JOIN语句中where语句和on语句的结果差别最大;在JOIN/INNER JOIN 语句中没有差别;在LEFT JOIN 和 RIGHT JOIN中差别大小取决于表达式和表中的数据。

以上就是SQL语句中on和where的用法区别讲解的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1617354.html

(0)
上一篇 2025年2月19日 00:28:13
下一篇 2025年2月19日 00:28:33

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 《未来人生》楠木樱获取方法

    解锁《未来人生》付费角色楠木樱,开启全新游戏体验!楠木樱是一位特殊npc角色,玩家需在游戏商城中的组合包内购买。 目前提供两种组合包:15元普通组合包和48元豪华组合包,两者区别如下: 1. 15元角色普通组合包: 包含:三个分支结局、触碰…

    2025年2月23日
    100
  • win10专业版和教育版哪个好

    专业版和教育版 Windows 10 的主要区别在于功能特性。专业版针对企业,支持 BitLocker 加密、组策略和 Hyper-V;教育版针对学校,支持 Windows 信息保护和应用虚拟化。选择版本取决于需求:专业人士和企业适合专业版…

    2025年2月23日
    100
  • win7休眠快捷键

    Windows徽标键 + X是Win7休眠的快捷键,通过该快捷键,计算机将进入休眠状态,节省电量并保留打开的程序和文件。休眠与睡眠的区别在于:睡眠模式仍会消耗少量电量维持内存供电,以便快速唤醒;而休眠模式会将内存数据写入硬盘并完全关闭电源,…

    2025年2月23日
    100
  • win7休眠就是锁定吗

    休眠和锁定的区别在于:目的:休眠用于节能,锁定用于安全性。电源状态:休眠时计算机关闭,锁定时仍运行。数据保留:休眠不保留密码,锁定保持已打开的程序和文档。唤醒方式:休眠通过电源按钮唤醒,锁定通过密码或生物识别解锁。 Win7 休眠与锁定的区…

    2025年2月23日
    100
  • win7家庭版和旗舰版的区别

    Windows 7 旗舰版比家庭版拥有更全面的功能,适合高级用户:BitLocker 驱动器加密保护数据安全;Windows XP 模式运行旧程序;Hyper-V 虚拟化支持多操作系统;多语言包支持更多语言;远程桌面主机实现远程控制;组策略…

    2025年2月23日
    100
  • win7家庭版和专业版的区别

    Windows 7 家庭版和专业版针对不同用户需求而设计,主要区别包括附加功能(如 BitLocker、组策略管理)、硬件支持(专业版支持更多 RAM 和 CPU)、商业功能(如远程桌面和 Hyper-V)以及价格和可用性。家庭版更适合个人…

    2025年2月23日
    100
  • 《烹饪冒险》新手玩法攻略

    《烹饪冒险》游戏玩法很简单,对于新手来说,先熟悉各种食材和烹饪技巧,确保食材新鲜、炊具齐全;然后按照食谱指示烹饪,注意时间、温度和调味;别忘了在烹饪时加入创意和个性化元素,满足顾客需求。同时,记得及时升级餐厅和食材,参加烹饪大赛,赚取金币和…

    2025年2月23日 游戏
    100
  • win7旗舰版好还是家庭版好

    对于 Windows 7,旗舰版提供更全面的功能集,包括 BitLocker 加密、组策略、虚拟化和远程桌面服务器等高级功能。而家庭版则更适合普通用户,内存限制为 16GB,支持 2 个处理器核心,并且不具备上述高级功能。 Win7旗舰版和…

    2025年2月23日
    100
  • 《诛仙世界》煞鬼王沸血切刀流攻略

    《诛仙世界》煞鬼王沸血切刀流详解:高输出流派的进阶攻略 沸血切刀流是《诛仙世界》中煞鬼王的一个强力输出流派,但其高收益也伴随着高操作门槛。本文将详细解读该流派的精髓,助你轻松驾驭。 高难度监控,精细化操作 沸血切刀流需要时刻监控伤口层数、沸…

    2025年2月23日 游戏
    100
  • 《三国:谋定天下》S5赛季新武将步练师角色介绍

    步练师是三国谋定天下在s5赛季将推出的新武将,那么步练师的自带战法是什么样的,韬略有什么效果,作为东吴贤后的她有什么能力呢?接下来就让我们一起了解一下三国谋定天下步练师武将图鉴吧。 三国谋定天下步练师武将图鉴 1.武将介绍 步练师,与东吴丞…

    2025年2月23日 游戏
    100

发表回复

登录后才能评论