2013-01-02 69 views
1

可能重複:
SQL update query using joins如何使用基於連接的值更新特定的行?

表1具有2列:

  • 具有ID列

  • 有日期時間列

表2:

  • 具有ID列

  • 有日期時間列

我需要根據之間的JOIN在table 2更新datetime柱表1和表2在ID上。

例子:

If table1.id = table2.id, 
update datetime column on table2 
with the datetime column value of table1. 

這是否有道理?

我該如何去做這件事?

+1

簡單[搜索(HTTP:// stackoverflow.com/questions/982919/sql-update-query-using-joins)會讓你免費;) – bonCodigo

回答

3

幾個選項。相關的子查詢應該可以工作:

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

+0

謝謝戴夫:)) –

0

試試這個

UPDATE t2 
SET t2.datetime_col = t1.datetime_col 
from table1 t1 
INNER JOIN table2 t2 ON t1.id = t2.id 
0
Update t2 Set Datetime = t1.DateTime 
    From Table1 t1 Join Table2 t2 On t2.id = t1.id