带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)找出员工岗位是 ...
最新文章
- nginx的HTTP模块编写
- biostar handbook: 第一周笔记汇总+第二周任务布置
- 调用webservice 设置超时时间
- Redis数据结构以及对应存储策略
- java点赞功能实现_JavaWeb中点赞功能的实现及完整实例
- 线性结构 —— 单调栈与单调队列
- 《温故而知新》JAVA基础四
- 如何获得线程对象,获得Thread对象,得到线程对象,根据线程名获得线程对象,多线程取得线程对象...
- 图解TCPIP-MIME
- H264 STAP-A解包代码(测试通过)
- 下列软件包有未满足的依赖关系,依赖: libxxx(= 2.2.10) 但是 2.3.0正要被安装
- 279. 完全平方数
- STEP 7-Micro/WIN SMART使用小技巧(持续更新)
- AUTOSAR--UDS诊断报文
- 活动网络——用顶点表示活动的网络AOV和拓扑
- .nav ul .mall a:hover 是什么意思
- Linux 常见问题
- How to Fix Microsoft Teams Error caa70004
- COleDateTime SYSTEMTIME CTime
- 如何更聪明地学习:20种让你更高效学习的科学方法
热门文章
- 由于应用universal link校验不通过_垃圾吊称重校验砝码2000kg市场行情分析
- PHP框架编写和应用知识点,写PHP框架需要具备那些知识?
- win10创建新的计算机用户名和密码忘了,Win10 2004中要使用本计算机用户必须输入用户名和密码选项不见了如何恢复?...
- java 从mysql 导出到excel_JAVA实现在数据库导出到EXCEL并下载
- 测试opencv-CUDA是否安装成功简单程序
- linux 程序输出 logo,Linux下制作logo并显示到开发板上
- 原创,自己做的一个简单实用的提示小插件,兼容性很好,基本上都兼容!
- C++_类和动态内存分配2-改进后的String类
- 译-在Python正则模式中search()和match()的区别是什么?
- springmvc 将post转换为delete,put