我的要求是在一个表中显示一些列,在html表中显示另一个表中的一些列。虽然它具有相同的coloumn id,但值会有所不同。所以,我无法与这两者相提并论。我的查询如下:
SELECT time_stamp,queryresultset FROM table1 d WHERE dID = 'CP009'
AND d.time_stamp >'2011-05-01 00:00:00' AND d.time_stamp < '2011-05-01 05:00:00'
order by time_stamp
UNION ALL
SELECT time_stamp,cpuutil FROM table2 h WHERE hID='HS002'
AND h.time_stamp >'2011-05-01 00:00:00' AND h.time_stamp < '2011-05-01 05:00:00'
order by time_stamp
所以,我得到的time_stampe对于这两个表都会以毫秒为单位变化。但是,我希望它在一个结果集中。虽然时间值以表格之间的毫秒数变化,但行数将相等。所以,我必须将它带入一个结果集中。我不知道是否有可能在sql查询中处理。或者我可能要尝试java编码?请指导我。以下是我的示例html表。
----------------------------------------------------
Time_stamp Cpuutil Queryresultset
----------------------------------------------------
2011-03-09 12:00:00 2.3 9.8
2011-03-09 12:15:00 5.3 4.5
2011-03-09 12:30:00 4.3 9.3
2011-03-09 12:45:00 2.3 9.2
答案 0 :(得分:1)
我很害怕,我很难理解你的问题,但在我看来,你正在寻找的东西:
SELECT table1.time_stamp t1, table1.queryresultset, table2.time_stamp t2, table2.cpuutil
FROM table1 , table2
WHERE ABS(t1-t2)<100
AND t1 >'2011-05-01 00:00:00'
AND t1 < '2011-05-01 05:00:00'
ORDER by t1
另一个可能性:
`SELECT column list
FROM table1
INNER JOIN table2
ON table1.col1=table2.col2
WHERE criteria
ORDER BY column list `
祝你有个愉快的一天。
答案 1 :(得分:0)
这听起来像是一个数据库概念错误。如果您的两个表在逻辑上链接,它们应该有一个物理连接器。如果您可以重构数据库模型,最好的解决方案是添加一个表table0
,在两个表之间保存公共因子(或只是一个自动增量id),然后将一个外部键添加到table1
和table2
。您需要先在table0
中插入一行,然后使用table1
的密钥作为外部密钥,将一行插入table2
,将一行插入table0
。
如果你不能重构表格,那太糟糕了。无论如何,做你想做的最简单的方法是编写java代码:
但这种方式是错误的,当你在项目中进一步推进时,你会遇到问题。
答案 2 :(得分:0)
感谢您的回复。所以我发现了查询。它现在正在运作。
SELECT a.cpuutil,a.hostid,a.time_stamp, b.queryresultset, b.time_stamp AS tm
FROM table1 a, table2 b
WHERE a.hID = 'hs002' AND b.dID='cp011'
AND SUBSTR(a.time_Stamp,1,15) = SUBSTR(b.time_stamp,1,15)
AND a.time_stamp > '2011-05-10 00:00:00'
AND a.time_stamp < '2011-05-10 14:00:00'