php - Mysql如果不存在则返回0

标签 php mysql sql

我有一个像这样的 mysql 表:

date           data
01-01-2005       10 |
02-01-2005       11|
03-01-2005       13|
07-01-2005       20|

我怎样才能像下面这样列出

date           data:
01-01-2005       10|
02-01-2005       11|
03-01-2005       13|
04-01-2005       0|
05-01-2005       0|
06-01-2005       0|
07-01-2005       20|

编辑:我使用这样的日历表:

date:
01-01-2005 for all 365 days.

这是我最好的意见,但它不起作用:

SELECT c.steps, IFNULL(c.steps, 0) value, r.calendar_date
  FROM log_activities c
  LEFT JOIN calendar r
    ON (r.calendar_date = c.date_logged)
 WHERE email = 'a@mail.com'
 ORDER BY c.date_logged DESC

最佳答案

尝试:

SELECT c.steps, IFNULL(c.steps, 0) value, r.calendar_date
  FROM log_activities c
 right JOIN calendar r
    ON r.calendar_date = c.date_logged
 WHERE email = 'a@mail.com'
   and substr(r.calendar_date, 4, 2) = '01'
   and r.calendar_date between
       (select min(date_logged) from log_activities) and
       (select max(date_logged) from log_activities)
 ORDER BY c.date_logged DESC

关于php - Mysql如果不存在则返回0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22336176/

相关文章:

mysql - 如何查询关系表中的所有结果?

php - 如何按字面意思发布此图标 : &

mysql - 选择auto_increment字段值

mysql - 用于记录多个答案的数据库设计

php - 如何在提交一定次数后阻止以后的提交?

sql - 将两个表合并为一个具有相同列名的表

php - 在服务器 asp.net/php 上注入(inject) javascript 函数

php - 如何使用 jquery-ui-map 在谷歌地图上添加标记

php - 两台MySQL服务器

sql - Oracle v() 与 nv() 函数