我有这个代码,我从4月份的一个表中得到'价值'
SELECT FROM_UNIXTIME(t_stamp/1000, '%Y-%m-%d %l:%i %p') as t_stamp,
ROUND(AVG(CASE WHEN id = '1' THEN value END),2) Col1,
ROUND(AVG(CASE WHEN id = '2' THEN value END),2) Col2
FROM tableforapril
WHERE
id IN ('1','2')
and DATE( from_unixtime( t_stamp / 1000 ) )
BETWEEN '2014-04-01' and '2014-04-01'
and value is not null
GROUP BY
DATE(from_unixtime(t_stamp / 1000 )),
HOUR(from_unixtime(t_stamp / 1000 ))
但我遇到的问题是我有不止一张桌子,我有另一张桌子用于游行 其中我还需要从该表中获取“值”列。
如果我这样做的时间戳如下:
and DATE( from_unixtime( t_stamp / 1000 ) )
BETWEEN '2014-03-31 and '2014-04-01'
我需要从march表和april表中获取'value'列。 输出看起来像这样:
t_stamp | Col1 | Col2
2014-04-01 3:00 AM | 1.23 | 2.33
2014-04-01 5:00 AM | 4.55 | 5.13
2014-03-31 1:00 PM | 12.33 | 2.00
2014-03-31 2:00 PM | 5.12 | 3.99
Col1和Col2列均来自march和april表。我正在使用的表按月分隔,两个表的值都为t_stamp。不幸, 我无法编辑我正在使用的表格,因为我不允许这样做。
在我的项目中,用户将根据下拉列表
选择t_stamp答案 0 :(得分:1)
由于你有两个单独的表,除非你加入它们,否则无法查询它们,因为你没有提供任何关系数据点,你唯一的选择就是联合。类似的东西:
SELECT * FROM tableforapril
WHERE....
UNION ALL
SELECT * FROM tableformarch
WHERE ...
另一个解决方案可能只是从两个表中返回内容:
SELECT a.col1, a.col2, b.col1, b.col2 FROM tableforapril a, tableformarch b