我有两个类似的表:
+-----+------+------+---------------------+
| ID | A | B | Timestamp |
| 308 | 1.82 | 1.38 | 2012-08-28 21:17:59 |
| 309 | 1.81 | 1.81 | 2012-08-28 21:18:25 |
| 310 | 1.38 | 1.34 | 2012-08-28 21:18:43 |
+-----+------+------+---------------------+
需要像这样创建新表:
+-----+------+------+---------------------+
| ID |A1-A2 | B1-B2| Timestamp |
| 308 | x | x | 2012-08-28 21:17:59 |
| 309 | x | x | 2012-08-28 21:18:25 |
| 310 | x | x | 2012-08-28 21:18:43 |
+-----+------+------+---------------------+
是否有人对此查询或sql cmd有任何建议?
抱歉,我的错,我没有说明。
我需要通过时间戳来减去和同步表,不需要ID或重要。两个表每秒填充2个数字(a,b),自动生成时间戳
它有什么方法可以计算这2个表在循环中的这个子时间?输出应该是这样的,每秒计算一次,有可能吗?
+---------------------+-------+------+ | Timestamp |A1-A2 | B1-B2| | 2012-08-28 21:17:59 | x | x | | 2012-08-28 21:18:25 | x | x | | 2012-08-28 21:18:43 | x | x | +---------------------+-------+------+
答案 0 :(得分:2)
使用insert into <your new table name> into
后跟select语句创建新表。我假设第一个表名为t1
,第二个表名为t2
insert into new_table from
select t1.id, (t1.a - t2.a) as a1_a2, (t1.b - t2.b) as b1_b2, t1.timestamp
from t1
join t2 on (t1.id=t2.id)
列标题在新表中用作列名,但不能在其中包含短划线。
答案 1 :(得分:2)
如果ID相同。你会创建新表并像这样填充它
INSERT INTO new_table
SELECT t1.id, (t1.a - t2.a), (t1.b - t2.b), t1.timestamp, ....
FROM table1 as t1 INNER JOIN table2 as t2 on t1.id = t2.id
请注意,您没有指定要对其他字段执行的操作,您可以根据需要随时使用这两个表中的数据。