在mysql中添加信息

时间:2010-07-05 02:08:30

标签: mysql join

我有一张桌子

id_user, hour, medition  
1 0  100  
1 1  101  
1 14 102  
2 5  108  
2 17 103

如何为任何用户用0值完成不存在的小时数?
例子

1 0 100  
1 1 101  
1 2 0  
1 3 0  
...

3 个答案:

答案 0 :(得分:2)

你不应该这样做,因为它是多余的。只添加有人有几个小时的条目。在你的程序中,只需对其进行编码,这样如果找不到记录,则会有零小时。一个例子,在PHP中:

$row = mysql_fetch_array(mysql_query("select * from myTable where id_user = 1 and hour = 3;"));
if (!$row) $hours = 0;
else $hours = $row['medition'];

答案 1 :(得分:1)

构建一个表小时,用1到24之间的数字填充它,然后使用它来查询主表的外连接。 - 用0

替换空值

编辑以添加快速示例:

SELECT id_user, hour, NVL(medition,0)
FROM `hours` as h
LEFT JOIN `myTable`
    ON `hours`.`hour` = `myTable`.`hour`

答案 2 :(得分:0)

查看我的解决方案,了解有关日期的类似问题;

Select all months within given date span, including the ones with 0 values

您可以按照Randy的建议创建一个小时表,而不是我创建的日期,应该很容易修改查询以返回您需要的数据...

希望它有所帮助!