2012-05-21 2 views
2

Я использовал следующий запрос для вставки значений в таблицеОбновления от выбора запроса в MySQL

INSERT INTO `tbl1` SELECT * FROM tbl2 

За здесь ТВ1 является таблицей температуры.

Теперь, я хочу что-то вроде этого

UPDATE `my_table` SELECT * FROM tbl1 

Я знаю, что синтаксис для обновления является обновление TBL SET COLS = Vals Но мы можем иметь что-то вроде запрос на вставку выше?

Спасибо.

+0

вы не думаете, так что вы дали недостаточно данных –

ответ

3

Вы можете присоединиться к tbl1my_table таблицы, используя многотабличные UPDATE синтаксиса:

UPDATE my_table JOIN tbl1 ON ***join_condition*** 
    SET my_table.foo = tbl1.bar, ... 
4

Вы можете сделать Insert with Select но не Update with Select. Но все же возможно, используя JOIN в пределах UPDATE.

UPDATE table1 t1 JOIN table2 t2 ON t1.id = t2.id 
SET t1.col1 = t2.col2, t1.col2 = t2.col2 
+0

Я думаю, вы имеете в виду 'SET t1.col1 = t2.col1' – Rahul

+0

Спасибо @ Рахул, но это всего лишь пример. Я пытался проиллюстрировать «формат соединения», а не назначение данных, потому что, если col1 и col2 из t1 должны иметь значение col2 из t2? –

+0

Да, я знаю. Нет, Бигги. – Rahul

1

Вы можете сделать что-то вроде этого:

update my_table join tbl1 on my_table.id = tbl1.id 
set my_table.Vaal= tbl1.vaal 
+0

Yaa, это на самом деле синтаксис SQL Server, а не mysql. хотя они почти такие же. – Rahul

Смежные вопросы