我想显示来自mysql DB的月份数据

时间:2014-12-24 07:24:33

标签: mysql

我的数据仅适用于11月和12月。在其他几个月里,我需要显示为“零”。我如何实现它?

示例数据:

月:12月 开放时间:2
关闭:2
NoStatus:5

月:11月 开放时间:5
已结束:7
NoStatus:15

预期产出:

月:1月(格式直到10月)
开放:0
关闭:0
NoStatus:0

月:12月 开放时间:2
关闭:2
NoStatus:5

月:11月 开放时间:5
已结束:7
NoStatus:15

1 个答案:

答案 0 :(得分:1)

创建一个包含1列和12行的表,其中只包含从1月到12月的月份

   CREATE TABLE months (name varhcar(15))

然后使用OUTER JOIN将此表与包含您的数据的其他表连接起来 假设您的表名为数据

 SELECT IFNULL(x.open) AS Open,
  IFNULL(x.closed) AS Closed , 
  IFNULL(x.noStatus) AS NoStatus , 
  y.name AS Months 
  FROM months y 
  LEFT OUTER JOIN data x 
  ON x.month = y.name;

使用IFNULL函数显示 0 而不是 NULL 。将其应用于您想要的每一列

IFNULL (column_name,0)