LINUX.ORG.RU

[sql] update

 


0

0

Какой должен быть синтаксис у команды заменяющей поля в первой таблице полями во второй таблице в случае совпадения ключей в этих таблицах ?

Что-то типа:

update set a1.value = a2.value a1, a2 where a1.id = a2.id;

???

anonymous

Прпробуй что-то типа такого

update table1 t1
set field1 = (select field1 from table2 t2 where t2.key = t1.key )

Crocodille
()

create table a1(id int, value int);
create table a2(id int, value int);

для mysql такое прокатывает:
update a1, a2 set a1.value = a2.value where a1.id = a2.id;
update a1 set a1.value = (select a2.value from a2 where a2.id=a1.id);

для postgres нет :(((((((((((

anonymous
()
Ответ на: комментарий от xtron

а что у обоих такие финты ушами хоть как-то имеют корни в стандарте? или это venfor specified feature?

Deleted
()
Ответ на: комментарий от Deleted

Засранцы с www.iso.org требуют деньги за стандарты, так что я хз насколько оно имеет корни в текущем стандарте...

Но у mysql вроде выглядит красивей и логичней...

xtron
()
Ответ на: комментарий от xtron

> Но у mysql вроде выглядит красивей и логичней...

в mysql по запросу непонятно какая таблица обновляется. "update a1, a2 set . . ." - a1 или a2 ? или обе ? пока все set не просмотришь - не поймёшь...

Eshkin_kot ★★
()
Ответ на: комментарий от xtron

> А у PostgreSQL накой то есть параметр ONLY в update...

почитайте про наследование таблиц, там написано зачем этот параметр.

anonymous
()
Ответ на: комментарий от anonymous

>почитайте про наследование таблиц, там написано зачем этот параметр.
да действительно

xtron
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.