带Left Join的SQL语句的执行顺序
基础的SQL执行顺序
SQL语句执行的时候是有一定顺序的。理解这个顺序对SQL的使用和学习有很大的帮助。
1.from
先选择一个表,或者说源头,构成一个结果集。
2.where
然后用where对结果集进行筛选。筛选出需要的信息形成新的结果集。
3.group by
对新的结果集分组。
4.having
筛选出想要的分组。
5.select
选择列。
6.order by
当所有的条件都弄完了。最后排序。
带连接的SQL语句执行顺序(以Left Join为列)
我的理解是这样,SQL语句中无论是否连接的其他表。 无论如何都要先形成一个结果集。后面的顺序不变!
只不过使用连接时,形成结果集合的方式略有不同。这个和 Left Join的实现原理有关。
select a.name,b.name
from T_left a //1
Left Join T_Right b //3
ON a.id = b.id //2
使用Left Join 形成结果集的方式是这样的。
1. 首先对From子句中的前两个表,执行笛卡尔积运算。运算结果 形成一个结果集合。
2. ON按条件,对上边的结果集,进行筛选,形成新的结果集。
3. 以左连接为例,如果T_left中存在未匹配到的行。那么把T_left中的这几行以外部行的形式加到上边的结果集中形成新的结果集。
4. 如果存在多张表,重复1~3过程!
转载于:https://www.cnblogs.com/mcad/p/4207033.html
带Left Join的SQL语句的执行顺序相关推荐
- 2021-07-01带Left Join的SQL语句的执行顺序
select a.name,b.name from T_left a //1 Left Join T_Right b //3 ON a.id = b.id ...
- MySQL 基础 ———— SQL语句的执行顺序与 LIMIT 子句
引言 到目前为止,已经总结了常见的SQL子句,包括 SELECT .FROM.JOIN ... ON.WHERE.GROUP BY.HAVING.ORDER BY. 虽然SQL的书写顺序是固定的,但在 ...
- SQL语句的执行顺序以及流程
目录 1.执行FROM语句 2.执行ON过滤 3.添加外部行 4.执行WHERE过滤 5.执行GROUP BY分组 6.执行HAVING过滤 7.SELECT列表 8.执行DISTINCT子句 9.执 ...
- 面试题:SQL语句的执行顺序
SQL语句的执行顺序,学了才知道还有这么多学问 查询语句都是从 FROM 开始执行的.执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入. 具体解析 FROM 执 ...
- sql语句的执行顺序以及流程(最新,最全,直接用)
熟练掌握sql语句的执行顺序,才能避免编程中各种bug和错误. 文章目录 一.Select 语句完整的执行顺序 1.from 子句组装来自不同数据源的数据+(ON过滤器)或(JOIN 添加外部行): ...
- 关于SQL语句的执行顺序
首先,要清楚在一select语句中都会用到哪些关键字: -----------select -----------from -----------join -----------where ----- ...
- 数据库:SQL语句的执行顺序,及每一步的详细解释
一.SQL语句的执行顺序举例(sqlServer版): (8) SELECT (9) DISTINCT (11) <TOP_specification> <select_list&g ...
- SQL SERVER 一个SQL语句的执行顺序
SQL SERVER 一个SQL语句的执行顺序 原文:SQL SERVER 一个SQL语句的执行顺序 一个SQL 语句的执行顺序 1.From (告诉程序 来自哪张表 如果是表表达式 依旧是如此顺序 ...
- 【MySQL】九、数据排序(升序 order by ... asc,降序 desc),sql语句的执行顺序
文章目录 1. 语法 2. 案例 (1)按照工资升序,找出员工名和薪资. (2)按照工资降序,找出员工名和薪资. (3)按照工资的降序排列,当工资相同的时候在按照名字的升序排列. (4)找出员工岗位是 ...
最新文章
- zlggui菜单12864_lcddrive.h
- c++十进制转二进制_二进制与十进制如何互相转换?
- 干货 | 带你理解对比学习损失函数的性质以及温度系数的作用
- 【Android笔记】Unable to execute dex: Multiple dex files define 解决方法
- qml 不刷新 放大还原_【显示器选择详解】你的电脑能否带动高分辨率,高刷新率显示器?...
- Android学习之基础知识十一 —运用手机多媒体
- Clean Code 《代码整洁之道》前四章读书笔记
- [转载]MySQL数据库增长用户权限GRANT/INSERT INTO user VALUES/FLUSH
- 用Python绘制了若干张词云图,惊艳了所有人
- 树莓派linux负载均衡集群,在树莓派2上Nginx并发1W到底有多难
- react--划分Reducer
- 数学建模学习笔记——预测类型1
- 【初探篇】申请阿里云免费SSL证书并配置https访问实战
- office365服务器没有响应,修复:由于长时间运行的脚本,Office 365没有响应
- 普通用户不能登录linux图形界面,只有root用户可以登录到图形界面
- 数学之路(3)-数据分析(5)
- emplace 和 emplace_back
- 如何在MySQL中创建新的数据库(windows下)
- java扫雷程序,Java扫雷程序,初试Java-JSP教程,Java技巧及代码
- mybatis spring springMVC
热门文章
- 《LeetCode力扣练习》剑指 Offer 05. 替换空格 Java
- Java数据结构2:堆排序思考
- visual studio 工具箱(选项卡、无控件、灰图标)
- linux shell 脚本 查找文件,Linux Shell在目录下使用for循环结合if查找文件的巧用
- double 导出txt保留两位_使用Jade“精修”XRD图谱并导出数据
- 英伟达验证图片加载不出来_让大卫雕塑跳舞、蒙娜丽莎说话,英伟达视频合成有如此多「骚操作」...
- go语言的iota是什么意思_关于Golang中的iota
- pycharm安装numpy
- cuda合并访问的要求_在 CUDA C / C ++ 中使用共享内存
- IO设备在OS中的权衡