SQL查询有特定的执行顺序吗?

2023-12-27

我对 SQL 查询的执行顺序感到困惑。

例如, (Inner join in MySQL在下面的代码中),之间WHERE条款和SELECT * FROM子句,哪一个首先被解释和执行?

也就是说,下面的查询是否带来*(全部tables data首先找到与以下内容匹配的案例WHERE健康)状况?或者他们只是找到列表data与 匹配WHERE条件然后SELECT * FROM来自WHERE result?

SELECT * FROM customers, orders
WHERE customers.id = orders.customer_id;

如上所述,我想知道 SQL 查询一般是如何执行的。


有一个logical查询文本的评估顺序,但数据库引擎可以根据最佳顺序选择执行查询组件的顺序。下面列出了逻辑文本解析顺序。例如,这就是为什么您不能使用以下别名:SELECT中的条款WHERE条款。就查询解析过程而言,别名还不存在。

  1. FROM

  2. ON

  3. OUTER

  4. WHERE

  5. GROUP BY

  6. 立方体 | ROLLUP(这些在 MySQL 中不存在,但在其他一些 SQL 方言中存在)

  7. HAVING

  8. OVER(窗口函数)

  9. SELECT

  10. DISTINCT

  11. ORDER BY

  12. LIMIT(或者在 MSSQL 中为 TOP)

See Microsoft 文档(请参阅“SELECT 语句的逻辑处理顺序”) https://learn.microsoft.com/en-us/sql/t-sql/queries/select-transact-sql?view=sql-server-2017#logical-processing-order-of-the-select-statement欲了解更多信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SQL查询有特定的执行顺序吗? 的相关文章

  • 在 Entity-Framework Core 中批量插入到 MySQL [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个由约 10 000 个对象组成的列表 比方说类Person 我需要将其插入到 MySQL 表中
  • 查找缺失值

    我有一个表 有 2 个重要的列 DocEntry WebId 样本数据就像 DocEntry WebId 1 S001 2 S002 3 S003 4 S005 现在我们可以注意到 在 WebId 列中 S004 丢失了 我们如何通过查询找
  • 重新排列mysql中的主键

    从MySQL表中删除一些行后如何重新排列主键列值 例如 一个包含 4 行数据的表 主键值为 1 2 3 4 当删除第2行和第3行时 第4行的键值变为2 请帮助我找到解决方案 为什么要这样做 你不需要重新排列您的密钥 因为它只是记录的数字和标
  • MySQL - 此版本的 MySQL 尚不支持“LIMIT 和 IN/ALL/ANY/SOME 子查询”

    这是php编码我正在使用的 Last Video db gt fetch all SELECT VID thumb FROM video WHERE VID IN SELECT VID FROM video WHERE title LIKE
  • 如何使用Conda安装MySQLdb?

    我已经阅读了有关如何安装 MySQLdb 的几种不同的解释 但我不确定哪种情况适用于我 因为我的错误消息不同 我的系统似乎找不到 MySQLdb 我安装了 pymysql 但我需要导入 MySQLdb 才能使用该库中的过程 感谢您的帮助 c
  • MySQL 多个 IN 条件对同一个表进行子查询

    我有多个带有子查询的 IN 条件 SELECT S name S email FROM something S WHERE 1 NOT IN SELECT id FROM tags WHERE somethingId S id AND 2
  • 找出会话的默认 SQL Server 架构

    我需要知道正在执行某些 DDL 的 SQL 脚本中当前的默认架构是什么 我不需要设置架构 但我确实需要将对它的引用 名称或 ID 放入变量中 该脚本可能以 Windows 登录身份运行 因此以下内容还不够 SELECT name defau
  • Mysql - 如何比较两个 Json 对象?

    将整个 MySql json 列与 json 对象进行比较的语法是什么 以下不起作用 select count criteria from my alerts where criteria industries 1 locations 1
  • 对 SQL Server 2005 结果进行分页

    如何在 SQL Server 2005 中对结果进行分页 我在 SQL Server 2000 中尝试过 但没有可靠的方法来做到这一点 我现在想知道SQL Server 2005是否有任何内置方法 分页的意思是 例如 如果我按用户名列出用户
  • MySQL 中如何使用继承?

    所以我正在读一本关于数据库设计原理的书 并读到了有关继承的章节 但我对如何在 MySQL 中将子类与其超类 连接 感到困惑 The table structure would for example look like this 那么我如何
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • 对时间序列数据重新采样

    我有一个以毫秒为单位的时间序列列表 我想对时间序列进行重新采样并对组应用平均值 我如何在 Postgres 中实现它 重新采样 是指聚合一秒或一分钟内的所有时间戳 一秒或一分钟内的所有行形成一组 表结构 date x y z Use dat
  • ON DUPLICATE KEY UPDATE 的自动增量过多

    我有一个包含列的基本表 id 主要是AI 名称 唯一 etc 如果唯一列不存在 则插入该行 否则更新该行 INSERT INTO pages name etc VALUES bob randomness ON DUPLICATE KEY U
  • 如何在 JdbcTemplate 中创建 mySQL 存储过程

    背景 为了解决 MySql 中某些语句只允许在存储过程中出现的问题 我尝试在 JdbcTemplate 提交的 sql 中创建 运行然后删除存储过程 一个简单的例子是 这恰好是在 Spring Boot 中 Service public c
  • 根据 SQL 查询的集合生成成员的“散点图”结果

    我有一个staff包含工作人员的数据库表 其中user no and user name列 我还有一个 department 包含员工可以加入的部门的表 其中dept no and dept name作为列 因为员工可以是多个部门的成员 所
  • 如何获取mysql中一条记录的大小

    如果表包含 TEXT 或 BLOB 类型的字段 如何获取 MySql 中记录的大小 是否可以使用sql语句获取记录或表的大小 要计算字符串或 blob 的大小 以字节为单位 请使用LENGTH YourColumn http dev mys
  • 左连接 SQL 求和

    我有两张桌子想要加入 比如说表 a 和表 b 表 b 有许多行指向表 a 表 b 包含价格 实际上是一个购物篮 所以我想要的是表a中的所有记录和表b中的价格之和 我努力了 select a sum b ach sell from booki
  • 为什么运行 docker 容器后 mysql 数据所有权更改为 systemd-journal-remote

    我的mysql数据库存储在 home mysql代替 var lib mysql 该目录曾经属于mysql 但是 当我运行命令时docker compose up使用这个 yml 文件 version 3 services mariadb
  • 无法在 Centos 上安装 php-mysqli 扩展

    我正在尝试将 mysqli 扩展安装到 php yum install php mysqli 我收到下一个错误 Transaction Check Error file usr share mysql charsets Index xml
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable

随机推荐

  • 在捆绑器 ruby​​ 版本中指定范围

    有没有办法指定 ruby 版本的范围 ruby gt 2 1 0 Your Ruby version is 2 1 1 but your Gemfile specified gt 2 1 0 ruby gt 2 1 0 Your Ruby
  • 使用 1x1 标签设置第三方 cookie - Javascript 不会删除 cookie

    我一直在尝试使用以下方法设置第三方 cookie SiteA img src http www siteB co uk cookie php SiteB 当我直接访问 Site cookie php 时 cookie 按预期删除 但访问 S
  • 更改Mysql自动索引号

    在我的表中 我有自动增量 id 其编号为 1 到 66 440 下一个编号是 88846790 从这里递增到 88846900 66440到88846790之间没有记录 我希望我的下一个自动增量编号为 66441 但它占用了 8884679
  • Laravel 应用程序 + 基于 Socket.IO 的 WebSocket 通知

    我有一个使用 Laravel 用 PHP 编写的 Web 应用程序 现在 我必须添加实时通知系统 从服务器 gt 客户端推送消息 并且可以检索从客户端 gt 服务器推送的消息 由于 Socket IO 向后兼容并且可以优雅地降级 因此我想将
  • Ruby on Rails Michael Hartl 第 3 章错误

    我在 Michael Hartl 的 RoR 教程中不断遇到此错误 是的 我用谷歌搜索了这个问题 看到它被回答了几次 我尝试了提供的解决方案 但他们没有解决问题 这是错误 ec2 user environment sample app st
  • 一元对元组的改变

    我正在寻找一个类似于以下类型的函数 Monad m gt a b gt b gt m c gt m a c 在我看来 它是绑定的某种组合 gt gt 和镜头操作 我知道我可以在绑定后通过模式匹配来解决这个问题 但我的直觉告诉我有一种 更简单
  • Firemonkey android read_phone_state运行时权限要求获取IMEI

    如何在运行时获得 read phone state 权限以获取 IMEI 号码 if not HasPermission android permission READ PHONE STATE then begin ASK AND GET
  • 如何在 Typescript 中使用 redux-thunk 通过 ThunkAction 正确输入 thunk?

    我正在尝试输入检查我的redux thunk使用 Typescript 编写代码 来自 Redux 官方文档 与 Redux Thunk 一起使用 https redux js org recipes usage with typescri
  • NSManagedObject 子类重复声明

    因此 当我的数据模型准备就绪时 我尝试在数据模型文件打开时生成子类 编辑器 gt 创建 NSManaged 对象子类 好了 生成了两个文件 一个是类声明 一个是属性 然而 我立即被提示我重新声明了一个已经存在的类 这是原始生成文件的位置 先
  • USB_DEVICE_ATTACHED 意图未触发

    有没有人能够让 android hardware usb action USB DEVICE ATTACHED 工作 好的 我正在尝试使用新的 USB 主机模式功能来检测 USB 设备何时连接 出于我的目的 我希望在连接设备时收到通知 我没
  • 在批处理结束时检测到不可提交的事务。事务被回滚

    我们在服务器迁移方面遇到问题 我们有一个应用程序 这么多事务在一台数据库服务器上运行良好 但是当将相同的数据库传输到另一台服务器时 我们面临以下错误 Server Msg 3998 Level 16 State 1 Line 1 Uncom
  • http - 更改请求网址?

    是否可以在不重定向的情况下更改 HTTP 请求的 url 例如代替 要求1 GET user abc123 HTTP 1 1 HTTP 1 1 301 Moved Permanently Location files abc123 要求2
  • ios webkit 中的 touchend 事件未触发?

    我正在尝试为基于 ios webkit 的应用程序实现一个菜单 其中用户触摸 单击并按住菜单按钮 menu item 500 毫秒后子菜单打开 div slide up sub menu 并且用户应该能够将手指 鼠标滑动到子菜单项并释放 l
  • Tapestry 4:资源缓存控制?

    我使用 Tapestry 4 每当我们推送更改任何资产 图像 样式表 JS 库 的版本时 我们都会遇到问题 因为用户的浏览器缓存中仍然有旧版本的资产 我想设置一些简单的方法来允许缓存 但在更新应用程序时强制下载新的资产 简单地完全禁止资产缓
  • 当列表数据发生变化时更新Android ListActivity?

    我想知道如何刷新ListActivity当我更改 添加数据时 我首先想到的是ListAdapter会知道列表何时更改 但是当我向列表添加元素时 列表上没有更新ListActivity 只有当我关闭 ListActivity 并再次重新打开它
  • 本地化 ASP.NET MVC 2 中的错误消息(默认验证属性)

    我正在开发一个多语言网站 我想本地化大多数 ValidationAttribute 的验证错误消息 例如 Requried 我知道可以这样做菲尔 哈克 http haacked com已在此显示article http haacked co
  • 类型提示和@singledispatch:如何以可扩展的方式包含 `Union[...]`?

    我正在重构一个转换各种日期格式的函数 即 ISO 8601 字符串 datetime date datetime datetime等 转换为 Unix 时间戳 我想要使 用新功能 singledispatch而不是类型检查 但我不知道如何保
  • 如何在Python中获取图像的信噪比?

    我正在过滤图像 我想知道信噪比 我尝试使用 scipy 函数 scipy stats signaltonoise 但我得到了一个数字数组 但我真的不知道我得到了什么 还有其他方法可以获得图像的信噪比吗 UPDATE 对于那些不阅读评论中链接
  • Sublime text:向新的语言定义添加符号(语法突出显示)

    我在 sublime text 2 中为一种稍微陌生的语言 Cadence SKILL 编写了语法突出显示 它的工作方式就像一个魅力 但是我怀念 CTRL R 的功能 它以一种易于访问的方式找到当前文件中的所有符号 函数 任何人都可以建议如
  • SQL查询有特定的执行顺序吗?

    我对 SQL 查询的执行顺序感到困惑 例如 Inner join in MySQL在下面的代码中 之间WHERE条款和SELECT FROM子句 哪一个首先被解释和执行 也就是说 下面的查询是否带来 全部tables data首先找到与以下