mysql - 添加值为 0 的行

标签 mysql select join insert

我的结果集如下:

fullDate            service          Monthlybilled
-----------------------------------------------------
2015-08-01          wash car         300.00
2015-10-01          brake test       500.00
2015-12-01          oil change       200.00

我需要展示另一张,例如:

fullDate            service          Monthlybilled
-----------------------------------------------------
....

2015-07-01          none             0.00
2015-08-01          wash car         300.00
2015-09-01          none             0.00
2015-10-01          brake test       500.00
2015-11-01          none             0.00
2015-12-01          oil change       200.00       
2016-01-01          none             0.00
...

即对于那些没有“检测到”事件的月份,我需要添加一行 上面写着“无”和“0.00”

请问有什么建议吗? 谢谢

最佳答案

有 3 种方法可以做到这一点:

  1. 编写一个查询,生成该范围内的所有日期(如 this SO answer 中所述),并对其执行 LEFT JOIN 以获取所有条目为零的日期。
  2. 创建一个维护所有日期的日历表,并将其与当前查询LEFT JOIN以获取所有记录。
  3. 在应用程序/服务层中编写逻辑,用 0 值填充缺失的日期。

我推荐选项 3。

关于mysql - 添加值为 0 的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43330431/

相关文章:

php - PDO 使用 where 子句选择多个表

JQuery:无限输入选择

MySQL 从由第 3 个连接的 2 个表中选择(mysql 连接)

php - 如何通过 mysql 中的 JOIN 搜索改进我的 LIKE?

mysql - 连接表以使用来自不同表的数据创建字段

php - 如果我使用 MySQLi 准备语句,是否需要转义我的变量?

mysql - Linux Mint 在系统启动时缓慢触发对 mysql 的查询

c - 打开 FIFO 进行写入返回 "No such device or address"

mysql - 使用mysql工作台从表生成mysql中的整个脚本?

Java 没有给出错误!