2016-05-18 33 views
1

他のテーブルにある値を使用してテーブルの1つのフィールドを更新しようとしていますが、「201:構文エラーが発生しました。informix update with join

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標準(またはそれ以前のバージョンの標準)の一部ではありません。それ以来、彼らが標準に追加されたかどうかはわかりません。 –