MySQL Group By 和 HAVING

2023-12-27

我是一个 MySQL 查询新手,所以我确信这是一个有明显答案的问题。

但是,我正在查看这两个查询。他们会返回不同的结果集吗?我知道排序过程会以不同的方式开始,但我相信它们会返回相同的结果,而第一个查询的效率稍高一些?

查询 1:HAVING,然后 AND

SELECT user_id   
FROM forum_posts  
GROUP BY user_id 
    HAVING COUNT(id) >= 100   
    AND user_id NOT IN (SELECT user_id FROM banned_users)

查询 2:WHERE,然后 HAVING

SELECT user_id   
FROM forum_posts 
WHERE user_id NOT IN(SELECT user_id FROM banned_users) 
GROUP BY user_id 
    HAVING COUNT(id) >= 100   

实际上第一个查询的效率会较低(HAVING之后应用WHERE).
UPDATE

一些伪代码来说明如何执行查询([非常]简化的版本)。
第一个查询:
1. SELECT user_id FROM forum_posts
2. SELECT user_id FROM banned_user
3.分组、计数等。
4. 如果记录出现在第二个结果集中,则从第一个结果集中排除记录

第二次查询
1. SELECT user_id FROM forum_posts
2. SELECT user_id FROM banned_user
3. 如果记录出现在第二个结果集中,则从第一个结果集中排除记录
4.分组、计数等。

步骤1,2的顺序并不重要,mysql可以选择它认为更好的任何内容。重要的区别在于步骤 3,4。已应用后GROUP BY。分组通常比联接更昂贵(在这种情况下排除记录可以被视为联接操作),因此分组的记录越少,性能越好。

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

MySQL Group By 和 HAVING 的相关文章

  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • Navicat utf8 不适用于 mysql 数据库

    我目前正在尝试合并两个不同步的表达式引擎数据库之间的数据更改 为此我选择使用 navicat 该网站在模板中大量使用希腊字符集 当我在 phpmyadmin 中查看希腊语表字段数据时 我按预期看到了希腊语字符 当我将它们加载到 Navica
  • ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端

    Nodejs中使用mysql的问题 const mysql require mysql var connection mysql createConnection host localhost user root password 1234
  • 如何删除非空约束?

    假设创建了一个表 如下所示 create table testTable colA int not null 您将如何删除非空约束 我正在寻找类似的东西 ALTER TABLE testTable ALTER COLUMN colA DRO
  • 展平具有未知列数的子/父数据

    我正在努力寻找存储和表示 SQL MySQL DB 和 C Windows 表单中的数据的最佳方法 我的数据映射到如下所示的类时 public class Parent public string UniqueID get set Key
  • iPhone表情插入MySQL却变成空值

    我们正在开发一个 iPhone 应用程序 它将表情符号从 iPhone 发送到服务器端 PHP 并插入到 MySQL 表中 我正在做服务器端的工作 但是insert语句执行成功后 插入的值变成空了 我可以正确插入字段 varchar 的是文
  • 在关系数据库中存储树结构的已知方法有哪些? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将程序存储在 phpMyAdmin 中

    我必须将存储过程添加到 MySQL 数据库 问题是托管提供php我的管理员来管理数据库 我在网上搜索了一下 想法是运行创建程序的MySQL本机语句 但由于程序的代码通常可能有 我们必须更改 MySQL 中的分隔符 php我的管理员没有这个选
  • mysqli_stmt_bind_result 的奇怪问题

    好吧 这让我很烦恼 我似乎在 PHP 文档中找不到任何内容 在 Google resultosphere 中也找不到任何内容 所以也许有人可以在这里提供帮助 我正在使用准备好的语句 绑定结果 然后使用这些绑定结果来填充下拉列表 例子
  • 如何列出表中的所有列?

    对于各种流行的数据库系统 如何列出表中的所有列 对于 MySQL 请使用 DESCRIBE name of table 只要您使用 SQL Plus 或 Oracle 的 SQL Developer 这也适用于 Oracle
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • 优化mysql中日期类型字段的查询

    我目前准备了以下查询 select sum amount as total from incomes where YEAR date 2019 and MONTH date 07 and incomes deleted at is null
  • 尝试通过比较不同的表从 SQL 查询输出正确的值

    我对 SQL 非常陌生 需要有关如何使用正确的查询完成此任务的帮助 我有 2 张桌子需要使用 表 TB1 有 id Name 1 bob 2 blow 3 joe 表 TB2 有 compid property 1 bob 2 blow 我
  • PHP实现的机票预订系统

    如何防止预订系统中的座位被重复预订 我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目 我有一个小问题 仅在付款后 门票和座位详细信息才会永久存储在此处 座位号在付款前分配 假设人 1 预订了飞机上的座位 x 并支付
  • grails/mysql 时区更改

    完成更改应用程序时区的最佳方法是什么 在我看来 必须发生以下情况 服务器 TZ 已被系统管理员更改 mysql必须重新启动 数据库中每个基于时间的列都必须使用convert tz 或等效方法更新所有值 因此 要么必须编写一个 mysql 脚
  • 从所有表中选择

    我的数据库中有很多表都具有相同的结构 我想从所有表中进行选择 而不必像这样列出所有表 SELECT name FROM table1 table2 table3 table4 我尝试过 但这不起作用 SELECT name FROM 有没有
  • 如何在 MySQL Insert 语句中添加 where 子句?

    这不起作用 INSERT INTO users username password VALUES Jack 123 WHERE id 1 有什么想法如何通过 id 将插入范围缩小到特定行吗 在插入语句中 您不会有现有行来执行 where 语
  • 每个搜索词显示一行,如果未找到则替换默认值

    Query SELECT product id name FROM product WHERE barcode in 681027 8901030349379 679046 679047 679082 679228 679230 67923
  • 选定的非聚合值必须是关联组的一部分

    我在 Teradata 中有两个表 Table A 和 Table B 它们之间是 LEFT JOIN 之后我将创建 SELECT 语句 其中包含两个表中的属性 SELECT attribute 1 attribute 2 attribut
  • MySQL中如何存储小数?

    我尝试过将 DECIMAL 与 2 2 一起使用 但它不允许我使用它 我只想存储一个数字 例如 7 50 或 10 50 我需要将这两个数字保留在小数点后 但是当我刷新数据库时 它会将值重置为 0 99 有什么建议么 第一个参数DECIMA

随机推荐

  • Swift 语言静态调度还是动态调度?

    阅读 Swift 语言指南 我找不到明确的信息 无论 Swift 是静态调度 如基本 C Java C 还是动态调度 如 Objective C 语言功能 如类 扩展 泛型等 的文档似乎表明它是静态类型的 这可能是所谓的速度改进的来源 不过
  • 将背景图片添加到
      号码

    我无法找到一种使用 CSS 完成以下任务的优雅方法 我需要有序列表的数字才能具有青色气泡背景 我有这个图像 其中包括白色笔画 但我不知道如何使用 CSS 将它放在每个数字后面 谢谢 我可能会做这样的事情 ol list style posi
  • 如何让不同的/服务器具有相同的域?

    我有一个网站foo com在 WordPress 上 我想这样做foo com mexico foo com venezuela 交货期不同 server对于具有相同域的每个城市 没有 WordPress 多站点 我不是要求按城市检测 ip
  • 实体框架、通用存储库模式和奇怪的 SQL 生成

    我已经为 Entity Framework 4 实现了一个通用存储库 这是一个简化版本 其中 AllAppContainer 是 EF4 对象上下文 public class Repository
  • Winsock C++ 连接超时

    我正在尝试为 connect 函数设置自己的超时 我的代码在默认连接下运行良好 如下所示 bool connectFUNC4 char ipaddr WSADATA wsa struct sockaddr in server if WSAS
  • MemoryError:使用 Python 的 Microsoft ML 服务

    以下脚本在小样本中效果很好 EXECUTE sp execute external script language N Python script N print df training flResp value counts input
  • iOS-卡片翻转动画

    我有两个 UIImageView 一个是 前 另一个是 后 我正在尝试实现它 以便当您单击 返回 时 它将触发动画并翻转卡片 动画效果完美 但它使整个页面具有动画效果 这是我不想要的 我只想要UIImageView反转 我看不出我做错了什么
  • 打字稿。使用“导入自”时是否仍需要三斜线引用

    在旧版本的 Typescript 中 需要添加著名的
  • 为什么 AJAX 请求返回后浏览器不设置 cookie?

    我正在使用 ajax 发出 ajax 请求 响应有Set Cookie标头集 我已在 Chrome 开发工具中验证了这一点 然而 浏览器确实not收到响应后设置cookie 当我导航到域中的另一个页面时 不会发送 cookie 注意 我没有
  • 像在 WPF 中一样在 winform 中绑定

    我想将 winform 表单的 Width 属性绑定到标签上的文本 以便我每次移动鼠标时标签的文本都会更新 目前 我仅在单击表单上的某些元素时实现更新 但不能连续更新 就像您在调整大小处理程序中更改文本一样 这件事该怎么做呢 您可以通过执行
  • 使用 WordNet 查找同义词、定义和例句

    我需要获取一个包含一个单词的输入文本文件 然后我需要使用 wordnet 找到该词的引理名称 定义和同义词集示例 我已经阅读了这本书 Python Text Handling with NLTK 2 0 Cookbook 和 Natural
  • 运行“jekyllserve”命令时出错

    我按照以下链接安装了 jekyll https davidburela wordpress com 2015 11 28 easily install jekyll on windows with 3 command prompt entr
  • 使用 peewee ORM 进行代码单元测试的自定义 sqlite 数据库

    我正在尝试使用 peewee python ORM 实现多对多场景 并且我想要一些单元测试 Peewee 教程很棒 但它假设数据库是在模块级别定义的 然后所有模型都使用它 我的情况有所不同 我没有带有显式运行的测试的源代码文件 从Pytho
  • SQL Server 转换 ISO 8601 未按记录工作

    Per MSDN http msdn microsoft com en us library ms187928 28v sql 105 29 aspx convert应该使用 127 作为样式参数正确解析带有时区的 ISO 8601 日期
  • 为什么 textwrap.wrap() 和 textwrap.fill() 这么慢?

    Why are textwrap wrap http docs python org library textwrap html textwrap wrap and textwrap fill http docs python org li
  • 如何检测 Adob​​e AIR 中的 Android 操作系统版本?

    在 iOS 上 Adobe AIR 的 Capability os 可能类似于 iPhone OS 5 1 1 iPad3 1 非常清楚地识别操作系统版本以及设备型号 在 Android 上 它看起来更像 Linux 2 6 35 7 59
  • Android USB Host API:批量传输缓冲区大小

    我正在编写软件平板电脑之间进行通信 摩托罗拉 Xoom Android 版本 4 0 3 内核版本 2 6 39 4 以及使用 USB Host API 的外围设备由安卓提供 我只使用两种类型的通信 control controlTrans
  • 如何查询流程定义的运行实例?

    camunda引擎是否提供API来查询某个进程的所有正在运行的实例 此查询是否也包含挂起的实例 您可以使用以下代码查询某个流程的所有正在运行的流程实例 package org camunda bpm import org camunda b
  • 在页面之间传递会话变量

    我想知道使用 asp net 会话在页面之间传递变量时出现什么问题 我已将代码精简为一个文本框 以查看发生了什么 我只是想获取文本框的值并将其显示在确认页面上 单击该按钮时 它会将我转到第二页 但标签为空白 是的 我的回发网址指向第二页 这
  • MySQL Group By 和 HAVING

    我是一个 MySQL 查询新手 所以我确信这是一个有明显答案的问题 但是 我正在查看这两个查询 他们会返回不同的结果集吗 我知道排序过程会以不同的方式开始 但我相信它们会返回相同的结果 而第一个查询的效率稍高一些 查询 1 HAVING 然