как да актуализирам конкретни редове със стойности въз основа на съединение?

Възможен дубликат:
SQL заявка за актуализиране, използваща съединения

Таблица 1 има 2 колони:

  • Има колона ID

  • Има колона за дата и час

Таблица 2:

  • Има колона ID

  • Има колона за дата и час

Трябва да актуализирам колоната datetime в table 2 въз основа на JOIN между таблица 1 и таблица 2 на ID.

Пример:

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

Това има ли смисъл?

Как да направя това?


person RJ.    schedule 02.01.2013    source източник
comment
Простото търсене щеше да ви освободи ;)   -  person bonCodigo    schedule 02.01.2013


Отговори (2)


Няколко опции. Корелирана подзаявка трябва да работи:

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)

person Dave S.    schedule 02.01.2013

Опитайте тази

UPDATE t2
SET t2.datetime_col = t1.datetime_col
from table1 t1 
INNER JOIN table2 t2 ON t1.id = t2.id
person rs.    schedule 02.01.2013