可能重复:
使用连接的 SQL 更新查询
表 1 有 2 列:
有一个 ID 列
有一个日期时间列
表 2:
有一个 ID 列
有一个日期时间列
我需要根据表 1 和表 2 上的 JOIN更新datetime
列table 2
ID
例子:
If table1.id = table2.id,
update datetime column on table2
with the datetime column value of table1.
这有意义吗?
我该怎么做呢?
可能重复:
使用连接的 SQL 更新查询
表 1 有 2 列:
有一个 ID 列
有一个日期时间列
表 2:
有一个 ID 列
有一个日期时间列
我需要根据表 1 和表 2 上的 JOIN更新datetime
列table 2
ID
例子:
If table1.id = table2.id,
update datetime column on table2
with the datetime column value of table1.
这有意义吗?
我该怎么做呢?
几个选项。相关子查询应该可以工作:
UPDATE t2 SET ts = (SELECT ts FROM t1 WHERE t1.id = t2.td) WHERE ...
这是最简单的方法,但对于大型集合来说会很慢。另一种方法是直接进行连接。这需要一些稍微特定于供应商的语法:
T-SQL:
UPDATE table1
SET col1 = t2.col1
FROM table1 t1 JOIN table2 t2 ON t1.id = t2.id
MySQL:
UPDATE table1 t1 JOIN table2 t2 ON t1.id = t2.id
SET t1.col1 = t2.col2
(通过:http ://blog.ookamikun.com/2008/03/mysql-update-with-join.html )
试试这个
UPDATE t2
SET t2.datetime_col = t1.datetime_col
from table1 t1
INNER JOIN table2 t2 ON t1.id = t2.id
Update t2 Set Datetime = t1.DateTime
From Table1 t1 Join Table2 t2 On t2.id = t1.id