2013-04-17 2 views
0
UPDATE table1 t1 
SET t1.value_1 = CONCAT(t2.value_2,t1.value_1) 
WHERE t1.id = t2.t1_id AND t1.id = '0123'; 

Может ли кто-нибудь помочь с тем, как я делаю что-то вроде вышеуказанного запроса?
В основном мне нужно принять значение в таблице 1 и префикс значения из таблицы 2 на него. Все кажется прекрасным, кроме очевидной проблемы, запроса, не зная, что такое t2.Oracle CONCAT из другой таблицы

+0

Другими словами, вы просите синтаксис обновления нескольких таблиц, не так ли? –

ответ

2

Что-то вроде этого

update (select t1.value_1, t2.value_2 
      from table1 t1, table2 t2 
      where t2.id = t1.id 
      and t1.id = '0123') 
set value_1 = value_1 || value_2 

вы должны убедиться, что таблица2 имеет уникальный идентификатор ключа ограничение или он не будет работать.

+0

Да, почти что-то вроде этого (мой SQL: UPDATE table1 t1 SET t1.t1value = CONCAT ((SELECT CONCAT (t2.t2value, '') FROM table2 t2 WHERE t2.t2id = t1.t1id), t1.t1value) WHERE t1.t1id = 'XYX'; ) – Casper