我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql语句执行顺序

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql语句执行顺序

mysql语句执行顺序

思考:

大家可以思考一下下面sql语句写的有没有问题?

select jg.id as goodsId,jm.name,...
from jdy_merchant jm
left outer join jdy_express_template jet on jet.id = jg.freight
left outer join jdy_goods jg on jm.id = jg.store_id
where jg.id = 1

甭管有没有,运行一下见分晓:

 Unknown column "jg.freight" in "on clause"

嗯哼? 问题来了,表里明明有这个字段为什么还会找不到这一列呢?

这里就要说一下sql查询语句的执行顺序问题了:

分析:

sql查询语句中的执行顺序为:

from : 从哪个表查询数据 必须关键字

on : 关联条件

join : 关联表

where : 过滤条件

group by : 将过滤后的数据进行分组

having : 将分组后的数据再次进行过滤

select :查询的列

order by : 将最终的查询结果进行排序

最后将查询的结果进行返回

接下来分析下上面的语句:

执行from 关联的表,这里有三个表,jdy_merchant jm,jdy_express_template jet,jdy_goods jg 

这三张表是按on指定的条件将left join后面的表附加到前面表之后的,

第一张表肯定没有问题,到left outer join jdy_express_template jet on jet.id = jg.freight这一句的时候就出现问题了

大家看一下关联条件 jet.id = jg.freight ,这时候前面还没有jdy_goods jg这张表,所以引用jg.freight就报错了

怎么改呢:

把关联表颠倒一下顺序就可以了,像这样:

select jg.id as goodsId,jm.name
from jdy_merchant jm
left outer join jdy_goods jg on jm.id = jg.store_id
left outer join jdy_express_template jet on jet.id = jg.freight
where jg.id = 1

执行结果:

                                                                

                                                                   自己挖的坑哭着也要填完

 

    END !!!

  

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql语句执行顺序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

mysql语句执行顺序

思考:大家可以思考一下下面sql语句写的有没有问题?select jg.id as goodsId,jm.name,...from jdy_merchant jmleft outer join jdy_express_template jet on jet.i
mysql语句执行顺序
2018-12-02

MySQL之select 语句的执行顺序

mysql语句编写顺序① select 字段名② from 表1 inner|left|right join 表2 on 表1 与表2 的关系…③ where ...④ group by ... having ...⑤ order by⑥ limit star
MySQL之select 语句的执行顺序
2018-04-07

MySQL语句执行顺序实例分析

这篇文章主要讲解了“MySQL语句执行顺序实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL语句执行顺序实例分析”吧!1、SQL数据举例举例:有10个用户,输出在订单表中下单数
2023-06-30

MySQL语句执行顺序和编写顺序实例解析

select语句完整语法:SELECT DISTINCT FROM JOIN ON WHERE <
2022-05-14

[转] Oracle sql语句执行顺序

sql语法的分析是从右到左一、sql语句的执行步骤:1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义。2)语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限。3)视图转换,将涉及视图的查询语句转换为相应的对基表查询语句。4)
[转] Oracle sql语句执行顺序
2015-06-02

关于SQL语句的执行顺序

首先,要清楚在一select语句中都会用到哪些关键字:-----------select -----------from-----------join-----------where-----------group by-----------having---
关于SQL语句的执行顺序
2017-11-03

switch语句执行顺序是什么

switch语句执行顺序是按照case标签的顺序进行判断,从上到下逐个比较。当找到与表达式匹配的case标签时,会执行该case标签下的代码块,并且如果没有遇到break语句,会继续执行后续的case标签的代码块,直到遇到break语句或者
2023-09-16

mysql查询语句join、on、where的执行顺序

目录一、典型SELECT语句完整的执行顺序二、from三、on四、on 条件与where 条件1、使用位置2、使用对象3、选择与使用五、join 流程mysql 的执行顺序一、典型SELECT语句完整的执行顺序1)from子句组装来自不
2022-11-19

简单了解mysql语句书写和执行顺序

mysql语句的书写顺序和执行顺序有很大差异。 书写顺序,mysql的一般书写顺写为:select <要返回的数据列> from <表名> join on
2022-05-14

oracle语句的执行顺序是什么

在Oracle中,SQL语句的执行顺序通常如下:FROM子句:首先确定要查询的数据表,并进行必要的连接操作。WHERE子句:对FROM子句中获取的数据进行条件过滤,只有符合条件的数据才会被查询出来。GROUP BY子句:对符合WHERE条件
oracle语句的执行顺序是什么
2024-04-09

SQL查询语句的执行顺序解析

SQL语句执行顺序 结合上图,整理出如下伪SQL查询语句。 从这个顺序中我们可以发现,所有的查询语句都是从 FROM 开始执行的。在实际执行过程中,每个步骤都会为下一个步骤生成一个虚拟表,这个虚拟表将作为下一个执行步骤的输入。 接下来,我们详细的介绍下每个
SQL查询语句的执行顺序解析
2021-04-08

编程热搜

目录