2016-05-18 3 views
1

Я пытаюсь обновить одно поле таблицы, используя значения, представленные в другой таблице, но он дает «201: произошла синтаксическая ошибка».запрос обновления Informix с объединениями

UPDATE altr_destination 
SET  ad.store_num = sx.new_store_num 
FROM altr_destination ad , store_xref sx 
WHERE ad.store_num = sx.old_store_num 
AND  ad.store_num = 9999 ; 

Спасибо, Utkarsh

ответ

1

Не следует использовать неявный синтаксис объединения (через запятую), использовать правильный синтаксис соединения!

Это может быть сделано с помощью коррелированного запроса к югу, а также:

UPDATE altr_destination ad 
SET  ad.store_num =(SELECT sx.new_store_num 
         FROM store_xref sx 
         WHERE ad.store_num = sx.old_store_num) 
WHERE ad.store_num = 9999 ; 

Я думаю, что обновление с присоединиться не работают на старые версии Informix, по крайней мере, это то, что я видел, когда я смотрел на него.

+1

Спасибо, человек отлично работает !!! –

+1

Вы правы: инструкция Informix [UPDATE] (https://www.ibm.com/support/knowledgecenter/SSGU8G_12.1.0/com.ibm.sqls.doc/ids_sqs_1254.htm) не поддерживает уведомления о соединении. Поэтому они не являются частью стандарта SQL-2003 (или более ранних версий стандарта); Я не знаю, были ли они добавлены в стандарт с тех пор. –

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