mysql 选择每个月的记录数

2024-01-22

我需要在 mysql 中创建一个查询,该查询将返回 12 行(每个月一行),用于选择月份名称以及给定月份的记录数。我有两个表,months_tbl 和 events_tbl。 events_tbl 中的每条记录都有一个 datetime 列和一个 company_id 列。

我目前正在做类似的事情(注意我还没有 WHERE company_id 子句):

SELECT months_tbl.month, COUNT( events_tbl.event_id ) cnt
FROM months_tbl
LEFT JOIN events_tbl ON months_tbl.month_id = MONTH( events_tbl.appt_date_time )
GROUP BY months_tbl.month
ORDER BY months_tbl.month_id ASC;

这将返回类似于我所期望的内容(选择 12 行,包含该月的事件计数,如果没有,则返回零):

**month**    **cnt**
January      0
February     0
March        0
April        0
May          0
June         0
July         0
August       88
September    99
October      120
November     0
December     9

但是,无论公司如何,它都会返回所有记录。我需要确保查询被过滤,所以我添加了 where 子句:

SELECT months_tbl.month, COUNT( events_tbl.appt_id ) cnt
FROM months_tbl
LEFT JOIN events_tbl ON months_tbl.month_id = MONTH( events_tbl.appt_date_time ) 
WHERE events_tbl.company_id = 1 
GROUP BY months_tbl.month
ORDER BY months_tbl.month_id ASC;

当我添加 where 子句时,我的结果变为:

**month**    **cnt**
August       88
September    99
October      120
December     9

有什么想法为什么当我添加 where 子句时我会丢失所有其他月份的记录,即使我使用的是左连接?


您正在使用一个LEFT JOIN,但在你的 where 声明中你使它成为“正常”JOIN

尝试这样写:

SELECT months_tbl.month, COUNT( events_tbl.appt_id ) cnt
FROM months_tbl
  LEFT JOIN events_tbl ON (months_tbl.month_id = MONTH(events_tbl.appt_date_time) 
    AND events_tbl.company_id = 1
  )
GROUP BY months_tbl.month
ORDER BY months_tbl.month_id ASC;

请注意AND events_tbl.company_id = 1在里面LEFT JOIN

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

mysql 选择每个月的记录数 的相关文章

  • 如何将变量设置为触发器 MYSQL 内存储过程的结果?

    我这里有一个小问题 我正在为我的数据库工作创建一个触发器 但我不知道如何在触发器内使用存储过程 我想将过程的结果保存在变量中 然后使用稍后在 IF 比较器上变量 这是我的代码 DELIMITER CREATE TRIGGER insert
  • 如何绑定值 INSERT INTO mysql perl

    我有下面的代码可以工作 但我需要知道如何绑定它们以确保安全 如果我只是将 new row 替换为 并将其放入执行中我收到错误 感谢您的帮助 foreach my field account field order new row param
  • 如何更新 MySQL 数据库中的两列?

    这不起作用 UPDATE customers SET firstname John AND lastname Smith WHERE id 1 用逗号分隔值 AND是一个逻辑运算符 它的位置是WHERE and ON条款 UPDATE cu
  • 如何获取所有mysql元组结果并转换为json

    我能够从表中获取单个数据 但是当我试图获取表上的所有数据时 我只得到一行 cnn execute sql rows cnn fetchall column t 0 for t in cnn description for row in ro
  • MySQL如何根据字段是否存在来插入新记录或更新字段?

    我正在尝试实现一个评级系统 在数据库表中保留以下两个字段 评级 当前评级 num rates 迄今为止提交的评分数量 UPDATE mytable SET rating rating num rates theRating num rate
  • Codeigniter $this->db->reconnect();用法

    I m not自动加载数据库 因为我的应用程序的大多数页面don t需要数据库处理 否则整个事情会变慢 我想要做的是 当数据库已经存在时 不要建立与数据库的新连接 而是使用它而不是打扰服务器数据库 那么我该如何实施 this gt db g
  • mysql_fetch_array while 循环。它是如何工作的?

    我已经阅读了 php net 上的该函数 但这仍然没有回答我的问题 我对 C 语言有一定的了解 并且刚刚开始使用 php 通常在 C 中 如果要执行 while 循环 则需要有一些条件来将循环推进到不再有效的点 如下所示 while x g
  • 正确显示mySQL一对多查询结果

    我有两张桌子 TRIPS tripID clientID and LEGS legID depart arrive tripID TRIPS 与 LEGS 具有一对多关系 因为有多个legID s per tripID 我需要以以下格式显示
  • MySQL 创建和更新时的 CURRENT_TIMESTAMP

    我想定义一个有 2 个 TIMESTAMP 字段的表 如下所示 CREATE TABLE msgs id INT PRIMARY KEY AUTO INCREMENT msg VARCHAR 256 ts create TIMESTAMP
  • 在 OS X 10.7 中找不到 Mysql 命令

    我无法让我的 mysql 在 os x 10 7 上启动 它位于 usr local mysql bin mysql 当我输入时 我得到命令未找到mysql version在终端中 我试过这个无法从 mac 命令行访问 mysql http
  • 使用另一个表中的数据查找并替换 MySQL 中的字符串

    我有两个 MySQL 表 我想使用另一个表中的数据查找和替换一个表中的文本字符串 Table texts messages thx guys i think u r great thx again u rock Table dictiona
  • 为什么 sql 字段名称中不应该包含逗号?

    人们一直告诉我列名中不应包含空格 我只是想知道 这是为什么 这是我为学校创建的一些数据库表遇到的问题 字段名称包括 Preble 和 Darke 相反 它们需要是 普雷布尔县 俄亥俄州 和 达克县 俄亥俄州 如果它们是行名称 我只需创建一个
  • UNIX时间记录时区吗?

    我想问一下UNIX时间 UNIX时间是否记录时区 我将托管从美国芝加哥移至 JST 问题是我的整个 MySQL 数据库都有 UNIX 时间 芝加哥 美国时区 的记录 我有一个 PHP 代码来显示之前的时间 例如 3 天前 昨天等 当我搬到新
  • WooCommerce:在数据库中查找产品

    我正在使用 WooCommerce 创建一个网站 我想根据用户在主页搜索表单中输入的邮政编码来限制用户可用的产品 为了能够实现这一目标 我必须在 phpMyAdmin 的数据库中指定每个产品的条件 但我似乎找不到它 有谁知道 phpmyAd
  • ER_ACCESS_DENIED_ERROR:用户 ''@'localhost' 的访问被拒绝(使用密码:NO)

    我有这个问题 我已经研究过但无法解决它 我想它与数据库权限有关 但我无法修复它 if error throw error Error ER ACCESS DENIED ERROR Access denied for user localho
  • 使用 PHP 代码和 HTML 表单将 Excel (.csv) 导入 MySQL

    我知道还有其他类似的帖子 但每个人都建议直接在 PHPMyAdmin 中将其导入 MySQL 这工作完美 但我需要通过 HTML 表单导入 PHP 到 MySQL 我想要一个收集文件的 HTML 表单 然后将该文件传递给 PHP 脚本 我想
  • MySQL 5左连接未知列

    我有以下查询在 mysql 4 1 中工作 但在 5 0 中不起作用 SELECT FROM email e event email ee LEFT JOIN member m on m email e email WHERE ee ema
  • 从数据库生成 XML 时出现 PHP 编码错误 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我正在尝试获取一个简单的 PHP 服
  • MySQL“选择更新”行为

    根据 MySql 文档 MySql 支持多粒度锁定 MGL case 1 开放航站楼 1 连接到mysql mysql gt start transaction Query OK 0 rows affected 0 00 sec mysql
  • 如何使用实体框架设置连接字符串

    我将 EF6 与 MySQL 结合使用 并有一个用于多个数据库的模型 我希望能够在我的表单中设置连接设置 如何以编程方式设置模型的连接字符串 你应该使用EntityConnectionFactory这就是您所需要的 public strin

随机推荐

  • 为什么我们可以使用“this”作为实例方法参数?

    什么是接收器参数在爪哇 Java 8 语言规范谈论this JLS 给出a hint http docs oracle com javase specs jls se8 html jls 8 html jls 8 4 1 220 无论哪种方
  • 垃圾收集和毕加索的问题

    我正在尝试在 Google 地图标记的 InfoWindow 中设置 ImageView 并复制了代码这个答案 https stackoverflow com a 22043781非常准确 除了我的 InfoWindowAdapter 不是
  • 如何获取OSM节点或路径的城市和国家?

    我正在解析 OSM 数据的国家 地区摘录 我想要的是获取该点或方式所属的城市和国家的名称 这可能吗 我怎样才能获取这些信息 要检索此信息 您需要地理编码器 除非该节点具有相关的地址标签 https wiki openstreetmap or
  • R:如何对pairs()图中的对角线面板进行着色?

    以下代码将面板背景着色pairs情节在R 如何为对角线面板 打印变量名称的地方 着色 正如您所看到的 我尝试了它 但变量名称未正确对齐 无论出于何种原因 count lt 0 mypanel lt function x y count lt
  • 无法查询类型“y”上的字段“x”

    我需要 Graphql 查询方面的帮助 我正在尝试将投资组合网站部署到 Netlify 但在部署过程中出现此错误 我的代码可以在 localhost 上运行 但不能在 Netlify 上运行 我需要从 Contentful 中提取数据并用它
  • 获取标签 ID 以使用 GMAIL API 获取消息列表

    我正在使用 Google 几天前推出的新 GMAIL API v1 我想获取一些带有一些标签的电子邮件过滤列表 如果我想这样做 我需要得到label ID每个 label name 的但我只能得到所有标签的列表 任何想法 Diego 仅对于
  • Azure Blob 和队列线程安全

    我需要一些帮助来理解 azure CloudBlobClient CloudQueueClient 和 CloudBlob 类中的线程安全性 我正在开发一个辅助角色 其中包括多个独立的作业处理器 其中每个作业处理器从特定队列读取数据并写入
  • 如何向 Visual Studio 2010 添加 PHP 支持?

    我不喜欢分割我的开发环境 但我为同时使用 NET 系统和基于 Apache 的系统的客户构建项目 这意味着我被迫将时间分配在 Visual Studio for the NET 和 Dreamweaver 或其他 IDE 之间进行基于 PH
  • 从私有 Git 存储库推送/拉取的 Bash 脚本?

    我正在尝试找到一种方法 可以编写一个 bash 脚本 该脚本将在每天午夜自动从我们的私人 Github 存储库中提取并更新我们的开发站点 我们的仓库出于明显的原因是私有的 我发现的任何接近的东西总是要求输入密码 我们的服务器有自己的 Git
  • 在组件中加载 Google Maps JS API [Angular]

    如何加载外部js文件 来自 Angular 组件中的 url 具体来说 我正在尝试加载google maps api到我的角度项目 目前 我正在我的index html像这样 注意 我知道angular maps 那不是一个选择 您可以随时
  • 避免内存泄漏

    C 中如何使用重载运算符来防止内存泄漏 任何完整的例子 Regards PKV 如果您想避免内存泄漏 请不要使用delete 这可能看起来很矛盾 但事实是手动内存管理很容易出错 最好使用自动 或库 技术 在 C 中 对于您创建的每个对象 都
  • Haskell - 在“where”内定义带有守卫的函数

    我刚刚开始自学 Haskell 这段代码应该进行质因数分解 divides Integer gt Integer gt Bool divides small big big mod small 0 lowestDivisor Integer
  • Git 未推送所有文件和文件夹

    我正在尝试将整个目录推送到我的存储库中 每次我尝试这样做时 它只是推送自述文件 没有其他任何内容 正如您在第二张照片中看到的 那里只有 README 第三张图片是我的主目录的样子 第一张图是添加和推送的整个过程 向您展示我已经完成了必要的步
  • 如何在Java中使用AES加密数据

    我希望在java中使用AES cbc 加密一段数据 我想使用我自己的IV 我将其保存在字节数组中 并将我自己的密钥保存在字节数组中 我该怎么做呢 我正在搜索它以查找有关此主题的教程 This http www javamex com tut
  • SyntaxError:以 '\x82' 开头的非 UTF-8 代码 [重复]

    这个问题在这里已经有答案了 在处理 Python 字节 时 我在 Eclipse 中收到此错误 它说错误显示在两行中 source C My Documents C Code and zip command zip qr 0 1 forma
  • 我可以使用 HtmlAgilityPack 在某个标签上拆分 HTML 文档吗?

    例如 我有一堆 tr 我想收集的标签 我需要将每个标签拆分为单独的元素 以便于我更轻松地进行解析 这可能吗 标记的示例 tr class first in year td class year 2011 td td class img a
  • 更新时:自动更新日期/时间字段

    SQL Server 的更新字段上是否有相当于 MySQL 的功能 具有 DEFAULT CURRENT TIMESTAMP 和更新 CURRENT TIMESTAMP 子句 该列具有当前 其默认值的时间戳 以及 会自动更新 我正在寻找的是
  • 如何在android中以编程方式更改编辑文本的位置?

    我正在使用RelativeLayout 以编程方式创建多个彼此相邻的编辑文本 每个编辑文本的默认宽度是wrap content 但是当编辑文本到达屏幕边缘时 它会在视觉上改变其大小 那么当发生这种情况时我怎样才能让它移动到下一行呢 priv
  • R无法识别格式中的日期

    folk R 无法识别下一个日期类型 Jun 3 1986 我多次尝试将该列转换为因子或字符 stackoverflow 中的下一个示例不起作用并返回 NA sdate2 日期 我使用了小写字母 b 但它也不起作用 我的版本不太好用 as
  • mysql 选择每个月的记录数

    我需要在 mysql 中创建一个查询 该查询将返回 12 行 每个月一行 用于选择月份名称以及给定月份的记录数 我有两个表 months tbl 和 events tbl events tbl 中的每条记录都有一个 datetime 列和一