sql 中on和where的区别

table a(id, type):

 

id     type 

----------------------------------

1      1         

2      1          

3      2         

 

table b(id, class):

 

id    class 

---------------------------------

1      1

2      2

 

sql语句1:select a.*, b.* from a left join b on a.id = b.id and a.type = 1;

sql语句2:select a.*, b.* from a left join b on a.id = b.id where a.type = 1;

sql语句3:select a.*, b.* from a left join b on a.id = b.id and b.class = 1;

 

sql语句1的执行结果为:

a.id    a.type    b.id    b.class

----------------------------------------

1        1            1        1

2        1            2        2

3        2               

 

sql语句2的执行结果为:

a.id    a.type    b.id    b.class

----------------------------------------

1        1            1        1

2        1            2        2

 

sql语句3的执行结果为:

a.id    a.type    b.id    b.class

----------------------------------------

1        1            1        1

2        1            

3        2            

 

由sql语句1可见,left join 中左表的全部记录将全部被查询显示,on 后面的条件对它不起作用,除非再后面再加上where来进行筛选,这就是sql语句2了;由sql语句3可见,on后面的条件中,右表的限制条件将会起作用。

 

**********************************************************************************

sql语句4:select a.*, b.* from a inner join b on a.id = b.id and a.type = 1;

sql语句5:select a.*, b.* from a inner join b on a.id = b.id where a.type = 1;

sql语句6:select a.*, b.* from a, b where a.id = b.id and a.type = 1;

sql语句7:select a.*, b.* from a, b where a.type = 1 and a.id = b.id;

 

这四条语句的执行结果一样,如下:

a.id    a.type    b.id    b.class

----------------------------------------

1        1            1        1

2        1            2        2

 

由此可见,inner join 中on后面的限制条件将全部起作用,这与where的执行结果是一样的。另外,where语句与inner join确实能得到相同的结果,只是效率不同(这个我没有测试过,不过我相信这个结论)。

 

但是sql语句6是否比sql语句7的效率要低一些,我没有足够的数据量来测试,不过我也相信是如此的。

转载于:https://www.cnblogs.com/shuaishuaiguo/p/6378705.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/429648.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机管理员无法创建密码,找到电脑管理员的密码

轻松找回遗忘的WinXP管理员密码很多“不拘小节”的朋友在使用电脑时,经常是昨天改了Windows XP帐户密码,今天便忘记了内容,把自己锁在“门外”的情况时有发生。对此,大多数朋友只能痛苦的去重新安装系统。其实如果你有以下的条件&…

上传文件插件(plupload)

引入插件&#xff1a; <script src"../../static/js/plupload.full.min.js"></script> /** 上传文件配置* *///配置uploadervar uploader new plupload.Uploader({runtimes: html5,flash,silverlight,html4,browse_button : uploader,url:/delivery/bat…

计算机网络项目实训教程课后答案,计算机网络项目实训教程

摘要&#xff1a;《计算机网络项目实训教程》是专门为Nikon D700相机用户或潜在用户量身定制的实用型图书.将官方手册中抽象的功能描述及没有讲清楚的内容,通过实拍测试及精美照片示例具体地展现出来,特别是精选的摄影玩家实际使用经验与技巧,让您感觉身边时刻有"高手点拨…

如何正确的做事

职场中&#xff0c;常常遇见下列两种人&#xff0c;一种是永远处在无休止忙碌状态&#xff0c;却事倍功半的人&#xff0c;一种是处理工作十拿九稳&#xff0c;经常事半功倍的人。 同样都是做事&#xff0c;造成两种结果的原因究竟是什么呢&#xff1f;答案其实很简单。前者&am…

北大计算机科学与技术专业河南录取分数线,北京大学河南录取分数线|2021北京大学河南分数线|2021年北京大学河南高考分数线|2021年北京大学河南招生计划录取人数...

北京大学2014年在河南省高考录取工作顺利结束。今年北大在豫共录取考生200名&#xff0c;其中全省理科第一名曹林菁、文科投档分第一名齐华瑞和文科实考分第一名齐思涵三位全省最高分考生均选择进入北京大学。今年北大在豫招生无论是总体招生数量还是顶尖高分考生录取&#xff…

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight

clientWidth、clientHeight、offsetWidth、offsetHeight以及scrollWidth、scrollHeight是几个困惑了好久的元素属性&#xff0c;趁着有时间整理一下 1. clientWidth 和 clientHeight 网页中的每个元素都具有 clientWidth 和 clientHeight 属性&#xff0c;表示可视区域的宽高&…

计算机组成原理题库带答案详解,计算机组成原理试试题库(含答案解析) -.doc

Word文档下载可编辑专业技术资料计算机组成原理试题一、单项选择题(从下列各题四个备选答案中选出一个正确答案&#xff0c;并将其代号写在题干前面的括号内。)1.为了缩短指令中某个地址段的位数&#xff0c;有效的方法是采取(C)。A、立即寻址B、变址寻址C、间接寻址 D、寄存器…

51Nod--1100-斜率最大

51Nod--1100-斜率最大 1100 斜率最大平面上有N个点&#xff0c;任意2个点确定一条直线&#xff0c;求出所有这些直线中&#xff0c;斜率最大的那条直线所通过的两个点。 &#xff08;点的编号为1-N&#xff0c;如果有多条直线斜率相等&#xff0c;则输出所有结果&#xff0c;按…

张掖计算机职称考试,甘肃省张掖市2018年3月计算机等级考试公告

&nbsp&nbsp[导读]:甘肃省张掖市2018年3月计算机等级考试甘肃省2018年3月全国计算机等级考试报名时间&#xff1a;2017年12月13日—2018年01月7日&#xff0c;打印准考证时段&#xff1a;2018年3月11—26日甘肃省张掖市2018年3月计算机等级考试公告一、报考条件考生不受…

【多视图几何】TUM 课程 第2章 刚体运动

课程的 YouTube 地址为&#xff1a;https://www.youtube.com/playlist?listPLTBdjV_4f-EJn6udZ34tht9EVIW7lbeo4 。视频评论区可以找到课程所使用课件与练习题的下载地址。 课程第2章从李群与李代数的角度介绍三维空间的刚体运动。李群即常见的旋转矩阵、变换矩阵&#xff0c;…

计算机教师成长计划,2020年信息技术教师个人工作计划

本学期我主要担任以下几个方面的工作&#xff1a;初二1到10班的信息技术课的教学工作以及学生的信息学奥赛小组的辅导工作以及学校安排的信息技术方面的日常工作等。同时本学期还有一个重要工作就是做一个完整的信息技术课题——初中信息技术基于小组协作竞争环境的“任务驱动”…

查询成绩小于85且是计算机的一项应用,查询练习2

查询练习创建表学生表student学号姓名性别出生日期班级create table student(sno varchar(20) primary key,sname varchar(20) not null,ssex varchar(10)not null,sbirthday datetime,class varchar(20));课程表Course课程号课程名称教师编号create table course(cno varchar(…

NTP时间服务器

1. NTP简介NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是用来使网络中的各个计算机时间同步的一种协议。它的用途是把计算机的时钟同步到世界协调时UTC&#xff0c;其精度在局域网内可达0.1ms&#xff0c;在互联网上绝大多数的地方其精度可以达…

计算机高办报名时间,前方高能!计算机信息技术证报名入口、考试时间已发布...

前方高能&#xff01;计算机信息技术证报名入口、考试时间已发布和发达***相比&#xff0c;我国的计算机信息技术在实际应用的过程中&#xff0c;还存在着许多的局限性&#xff0c;这就使其在使用是计算机信息技术的应用效果无法达到理想的状态。计算机信息技术证报名入口、考试…

API文档工具-Swagger的集成

最近安装了API文档工具swagger&#xff0c;因为Github上已有详细安装教程&#xff0c;且安装过程中没有碰到大的阻碍&#xff0c;所以此文仅对这次安装做一份大致记录 相关网站 Swagger 官方地址&#xff1a;http://swagger.wordnik.com Github安装详解【springmvc集成swagger】…

计算机翻译辅助工具安卓版,计算机辅助翻译软件

OmegaT是一款电脑翻译软件&#xff0c;此软件能够帮助用户对一些机器专业语言进行快速翻译&#xff0c;目前软件支持任何Java的操作系统&#xff0c;用户无需担心系统不支持的问题。另外&#xff0c;软件可以在任意目录中搜索所支持的格式的文件&#xff0c;翻译速度快、准确性…

计算机应用基础试模块5ACCSE,2015年计算机二级《Access》上机最后冲刺卷(1)

二、基本操作题41在考生文件夹下的“Acc1.mdb”数据库中已建立表对象“职工”。试按以下操作要求&#xff0c;完成对表“职工”的编辑修改和操作&#xff1a;(1)将“职工号”字段改名为“编号”&#xff0c;并设置为主键。(2)设置“年龄”字段的有效性规则为“年龄>20”。(3…

情人节引发的血案

首先&#xff0c; 如果你能看到这句话&#xff0c;那我就应该恭喜你&#xff0c;你已经被此文的标题所吸引。不过&#xff0c;千万不要想太多&#xff0c;此文不是什么《今日说法》&#xff0c;但也与法有那么一丁点的关系&#xff1b;此文也不是什么《我们约会吧》&#xff0c…

css 可编辑,如何设置DIV可编辑

「来源: &#xff5c;web前端开发 ID&#xff1a;web_qdkf」如何让一个div变成可编辑状态&#xff0c;比如富文本的输入框就可以用可编辑的div(自定义一个富文本时可用)&#xff0c;类似textare。有2种方案可以实现&#xff1a;1是通过contenteditable属性设置为true&#xff0…

Java中的局部变量表及使用jclasslib进行查看

直接上下载地址 jclasslib是一个独立的工具&#xff0c;不是包含在JDK中的工具&#xff0c;需要自己进行下载&#xff0c;下载地址如下&#xff1a; http://downfile.downcc.com/down/JClassLib_windows.zip 什么是局部变量表 在《java中的栈》中我们说到了一个栈帧至少需要包含…