Php 按日期显示数据
我有3个mysql表,其中包含按序列号分类的时间戳产品的数据 我想按日期显示每个表中有多少不同的序列号条目 表1:Php 按日期显示数据,php,html,mysql,Php,Html,Mysql,我有3个mysql表,其中包含按序列号分类的时间戳产品的数据 我想按日期显示每个表中有多少不同的序列号条目 表1: serial timestamp 1 7/7/13 2 7/7/13 3 7/8/13 4 7/9/13 5 7/9/13 6 7/9/13 表2: serial timestamp 1
serial timestamp
1 7/7/13
2 7/7/13
3 7/8/13
4 7/9/13
5 7/9/13
6 7/9/13
表2:
serial timestamp
1 7/6/13
2 7/7/13
3 7/8/13
4 7/9/13
表3:
serial timestamp
1 7/9/13
2 7/10/13
3 7/10/13
输出应如下所示:
date table1 table2 table3
7/6/13 0 1 0
7/7/13 2 1 0
7/8/13 1 1 0
7/9/13 3 1 1
7/10/13 0 0 2
Total 6 4 3
正在寻找最优雅的方法来实现这一点,并通过PHP在html中显示这一点。需要以3个表中最早的日期开始输出表,并以3个表中最晚的日期结束 使用
计数
和分组依据
SELECT
`timestamp`
COUNT( * ) as numEntries
FROM
tbl
GROUP BY
`timestamp`
您必须首先将所有数据合并到一个派生表中,然后透视该表:
SELECT timestamp,
COUNT(CASE WHEN tableNumber = 1 THEN tableNumber END) table1Total,
COUNT(CASE WHEN tableNumber = 2 THEN tableNumber END) table2Total,
COUNT(CASE WHEN tableNumber = 3 THEN tableNumber END) table3Total
FROM (
SELECT timestamp, 1 tableNumber FROM table1
UNION ALL
SELECT timestamp, 2 FROM table2
UNION ALL
SELECT timestamp, 3 FROM table3
) c
GROUP BY timestamp
输出:
| TIMESTAMP | TABLE1TOTAL | TABLE2TOTAL | TABLE3TOTAL |
|---------------|-------------|-------------|-------------|
| July, 06 2013 | 0 | 1 | 0 |
| July, 07 2013 | 2 | 1 | 0 |
| July, 08 2013 | 1 | 1 | 0 |
| July, 09 2013 | 3 | 1 | 1 |
| July, 10 2013 | 0 | 0 | 2 |
小提琴
可以选择在
分组依据
之后添加和汇总
,以显示总计。为什么这些都被划分在三个不同的表中?查询一个表会简单得多,性能也会更好。为什么查询中必须包含总计
?。这似乎是你下次应该自己计算的东西,展示你试图避免经典的东西。这不是一个真正的问题。是的,一次只能在一张桌子上工作。我的错。