2012-04-27 8 views
1

残念ながら問題は何ですか?クロステーブルJOINエラー

UPDATE catalog_product_entity_varchar SET value = '{somevalue}' 

    FROM cataloginventory_stock_item AS csi 
    JOIN catalog_product_entity AS cpe ON cpe.entity_id = csi.product_id 
    JOIN catalog_product_entity_varchar AS cpev ON cpev.entity_id = cpe.entity_id 

WHERE attribute_id = '1691' AND sku = '605284470695'; 

ERROR

Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'FROM cataloginventory_stock_item AS csi  JOIN catalog_pr' at line 3 

答えて

1

SET句は、テーブルの参照の後に来る必要があります:

UPDATE 
    cataloginventory_stock_item AS csi 
    JOIN catalog_product_entity AS cpe ON cpe.entity_id = csi.product_id 
    JOIN catalog_product_entity_varchar AS cpev ON cpev.entity_id = cpe.entity_id 
SET cpev.value = '{somevalue}' 
WHERE attribute_id = '1691' AND sku = '605284470695'; 
+0

'エラーコード:1064. SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文がFROM smartwool.cataloginventory_stock_itemの近くで使用するようにしてください。AS csi JOIN smartwool.catalog_prod at 2行目 – ehime

+0

Yessir、http:// pastebinを使っています。 com/23h41Mg7 – ehime

+0

私に許してください、 'FROM'キーワードは全く存在すべきではありません。私はそれを私の答えから削除しました。 – eggyal

0

あなたはUPDATE ... FROMを行うことはできません。それはまったく無効な構文です。おそらくあなたはINSERT INTO ... SELECT FROMを考えているでしょうか?

+0

私はOPは(http://dev.mysql.com/doc/refman [UPDATE' 'マルチテーブル]やりたいと思います/5.6/en/update.html)。 – eggyal

+0

@hime:この回答を受け入れた理由が不思議です。 – eggyal

+0

なぜこれが下降表示されたのですか?マークの声明は正しい。 –