【发布时间】:2018-10-15 16:47:04
【问题描述】:
我有一个不寻常的情况,我必须用另一个表的值更新一个表,这两个表是相同的。
Table 1 and Table 2
+-------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+----------+------+-----+---------+-------+
| timeStamp | datetime | NO | PRI | NULL | |
| obj_id | int(10) | NO | PRI | NULL | |
| value | double | YES | | NULL | |
+-------------+----------+------+-----+---------+-------+
我需要用 table2 中存储的值更新 table1。
我已尝试在 SO...上找到一些有用的信息...
经过几次尝试,我想出了这样一个查询:
UPDATE table1 AS f
SET table1.value = t.value
FROM table2 AS t
WHERE (f.timeStamp, f.obj_id) = (t.timeStamp,t.obj_id);
ofc 到现在都没有运气:(
错误是最常见的错误: ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“FROM table2 AS t WHERE (f.timeStamp, f.obj_id) = (t.timeStamp,t.obj_id)”附近使用正确的语法
【问题讨论】:
-
这并不罕见。这基本上是复制。但是,您不能简单地编造语法。
标签: mysql sql-update composite-primary-key