sql - mysql连接创建缺失日期的表

标签 sql mysql join

不确定如何正确执行此操作。我整个早上都在搞乱 JOINS。我所能得到的只是日期范围,但日期只是重复应该为空白的日期。

这是一个基本的查询

SELECT `time`,`protocal`,(`octet`/1024) as `octet10243`,`percent`,`div`,FROM_UNIXTIME(`time`, '%Y-%m-%d') as `newtime3` FROM ipport
WHERE FROM_UNIXTIME(`time`, '%Y-%m-%d') >= '2011-01-05' AND FROM_UNIXTIME(`time`, '%Y-%m-%d') <= '2011-01-08' AND (`protocal` = 'Echo' ) AND `div` = 'XDIV'

这是结果。

"time";"protocal";"octet10243";"percent";"div";"newtime3"
"1290923100";"Echo";"92844.07421875";"1.04435";"XDIV";"2011-01-06"
"1291009500";"Echo";"95110.106445312";"1.0796";"XDIV";"2011-01-07"

我有另一个表,日期从 2011-01-01 到 2011-01-17。我用它来加入。

这就是我要找的结果。

"time";"protocal";"octet10243";"percent";"div";"newtime3"
"0";"Echo";"0";"0";"XDIV";"2011-01-05"
"1290923100";"Echo";"92844.07421875";"1.04435";"XDIV";"2011-01-06"
"1291009500";"Echo";"95110.106445312";"1.0796";"XDIV";"2011-01-07"
"0";"Echo";"0";"0";"XDIV";"2011-11-08"

这是我在 JOINing 中积累的尝试...

SELECT makeupdate.date, FROM_UNIXTIME(ipport.time, '%Y-%m-%d'),`time`,`protocal`,(`octet`/1024) as `octet10243`,`percent`,`div`,FROM_UNIXTIME(`time`, '%Y-%m-%d')
as `newtime3` FROM ipport  JOIN makeupdate ON FROM_UNIXTIME(ipport.time, '%Y-%m-%d') >= '2011-01-05'
AND FROM_UNIXTIME(ipport.time, '%Y-%m-%d') <= '2011-01-08' AND (`protocal` = 'Echo' ) AND `div` = 'XDIV'

感谢帮助

最佳答案

从您的日期表开始,然后左连接到您的 ipport 表,这样您就可以将日期表中的所有行与 ipport 表中的匹配行结合起来。

SELECT m.date, FROM_UNIXTIME(i.time, '%Y-%m-%d'),`time`,`protocal`,(`octet`/1024) as `octet10243`,`percent`,`div`,FROM_UNIXTIME(`time`, '%Y-%m-%d') as `newtime3` 
    FROM makeupdate m
        LEFT JOIN ipport i
            on m.date = FROM_UNIXTIME(ipport.time, '%Y-%m-%d')
                AND (`protocal` = 'Echo' ) 
                AND `div` = 'XDIV'
    WHERE m.date >= '2011-01-05' AND m.date <= '2011-01-08'

关于sql - mysql连接创建缺失日期的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716016/

相关文章:

sql - 如果数组中的相关表值(postgresql),则在表上设置值

php - MySQL - 更新记录并保持参照完整性

php - 有没有办法将事件处理函数附加到 mysql 错误?

java - Mysql Drop Table as PreparedStatement 不适合我

mysql - SQL 多对多

sql - 我的 PostgreSQL 10 查询非常慢,需要一种方法让它更快

php - 具有多个连接的 SQL 查询会影响性能

c# - 将整数列表从 C# 传递到 Oracle 存储过程

连接表的mysql公共(public)列标准

mysql - SQL 查询 - 连接先前连接的所有行