展开全部

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

on、where、having这三个都可以加条件的子句中,on是最先执行,where次之,having最后。有时候如果这先后顺序不影响中间结果的话,那最终结果是相同的。但因为on是先把不符合条件的记录过滤后才进行统计,它就可以减少中间运算要处理的数据,按理说应该速度是最快的。

根据上面的分析,可以知道where也应该比having快点的,因为它过滤数据后才进行sum,所以having是最慢的。但也不是说having没用,因为有时在步骤3还没出来都不知道那个记录才符合要求时,就要用having了。

在两个表联接时才用on的,所以在一个表的时候,就剩下where跟having比较了。在这单表查询统计的情况下,如果要过滤的条件没有涉及到要计算字段,那它们的结果是一样的,只是where可以使用rushmore技术,而having就不能,在速度上后者要慢。

扩展资料

SQL中on条件与where条件的区别:

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

在多表联接查询时,on比where更早起作用。系统首先根据各个表之间的联接条件,把多个表合成一个临时表后,再由where进行过滤,然后再计算,计算完后再由having进行过滤。由此可见,要想过滤条件起到正确的作用,首先要明白这个条件应该在什么时候起作用,然后再决定放在那里。

join过程可以这样理解:首先两个表做一个笛卡尔积,on后面的条件是对这个笛卡尔积做一个过滤形成一张临时表,如果没有where就直接返回结果,如果有where就对上一步的临时表再进行过滤。

mysql on是什么意思_这SQL语句里的ON 是什么意思啊相关推荐

  1. mysql给字段添加描述_用sql 语句给字段添加描述

    用sql 语句给字段添加描述 IF not exists (SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', ...

  2. mysql 字段相同条数_用sql语句统计数据库某个字段中相同的数据有多少条?

    展开全部 用分组,组内计数就可以了,意e69da5e6ba9062616964757a686964616f31333366306461思就是根据字段a的取值进行分组,相同的为一组,在用count进行组 ...

  3. mysql查询学号和姓名_数据库SQL语句中 查询选修了全部课程的学生的学号和姓名...

    一.SQL语言查询选修了全部课程的学生的学号和姓名. 两种解决途径: 第一种: 我们可以表示为在SC表中某个学生选修的课程数等于C表中课程总数.相应的SQL语言如下: selectS#,SNAMEfr ...

  4. mysql的条件求和函数_使用SQL语句统计数据时sum和count函数中使用if判断条件的讲解...

    首先举个栗子(不想看的话直接下面看总结): order_type:订单类型 open_id:用户唯一标识 SELECT date(create_time) AS '当天日期', sum(real_pr ...

  5. mysql查询和某人一样_使用sql语句实现查询某人的排名,分数相同排名相同

    一.第一种形式排名 如:4个学生的分数分别是:100.90.90.80 排名结果为:第一.第二.第二.第三 SELECT count(DISTINCT score) FROM tbl_score WH ...

  6. mysql pivot函数怎么用_浅析SQL语句行列转换的两种方法 case...when与pivot函数的应用...

    /*创建数据库*/ CREATE DATABASE tmp go USE tmp go /*创建数据库测试表*/ CREATE TABLE [Scores] ( [ID] INT IDENTITY(1 ...

  7. 【MySQL】全国省市县三级联动SQL语句—区县SQL(三)

    目录 ->区县信息表数据 [MySQL]全国省市县三级联动SQL语句-建表和省份SQL(一)_路遥叶子的博客-CSDN博客全国省市县三级联动SQL语句-建表和省份SQL(一)https://bl ...

  8. JavaWEB01:MySQL基础——数据库相关概念、MySQL安装和配置、基础的SQL语句

    JavaWEB01:MySQL基础--数据库相关概念.MySQL安装和配置.基本的SQL语句 JavaWEB02:MySQL高级--约束.数据库设计.多表查询.事务 JavaWEB03:JDBC Ja ...

  9. mysql批量删除多条记录的sql语句_mysql批量删除sql语句

    30种mysql优化sql语句查询的方法_计算机软件及应用_IT/计算机_专业资... 简要介绍基础语句: 1.说明:创建数据库 CREATE DATABASE database-name 2.说明: ...

最新文章

  1. stm32驱动lcd段码io配置_I.MX6U处理器GPIO的命名复用与IO配置
  2. I/O端口和I/O内存
  3. python3读取excel数据-python3读取Excel数据
  4. 《C++ Primer》2.6.1节练习
  5. 【计算机网络】核心知识归纳总结
  6. SAP License:生产订单结算时候的几个差异
  7. 全面了解CCD摄像机
  8. 关于csdn登陆提示验证码
  9. 【数据挖掘】金山办公2020校招大数据和机器学习算法笔试题
  10. 两天赚 2 千,用 Python 接私活,真香!
  11. python文本编辑器怎么运行_python程序编辑和运行的几种方法
  12. 举个栗子!Tableau技巧(53):添加跳转按钮实现页面切换
  13. 修改RedHat启动项
  14. Autodesk AutoCAD 2022中文下载及教程
  15. kindle推送服务
  16. Android名片扫描识别系统SDK
  17. Java字符串类学习笔记
  18. 利盟Lexmark X5190 Pro 打印机驱动
  19. 定制一个Python开源键盘,一键放连招不在话下
  20. 软件测试基础知识-问答

热门文章

  1. 乐高机器人亮剑_羊城e家互联网同道精英汇 多益网络诚邀更多游戏奋斗者加入...
  2. 图像分割之基于阙值的分割方法
  3. 洛阳理工Linux实验报告,谁来给我抄实验报告啊!这一张又一张写得。。。。
  4. 关于视觉工业相机的50个问题
  5. Linux内核4.14版本——mmc core(7)——mmc core主模块(3)总线io setting相关(struct mmc_ios)
  6. WHT20无线温湿度传感器 STM8S单片机
  7. LLRB——红黑树的现代实现
  8. Yocto系列讲解[入门篇] 1 - 快速入门熟悉Yocto的构建
  9. 【LeetCode】934. 最短的桥
  10. nand flash基础(一)