2016-03-23 8 views
1

私は2つのテーブル:_adagio_itemscatlg_productsを持ちます。ここで、カラム_adagio_items.ItemIdcatlg_products.nameには同じ値を入れるべきです。mysqlは2つのテーブル間で一意のレコードをマークします

私はcatlg_products.nameには存在しない_adagio_itemsでレコードを検索し、マークしたいです。今、私は私が見つけたことを_adagio_items内のレコードをマークする必要があり

SELECT ItemId 
FROM _adagio_items , catlg_products 
WHERE catlg_products.name <> _adagio_items.ItemId 

は、これまでのところ私は、このようなレコードを検出し、SQLステートメントを作成することができました。だから私はこれを行うにしようとしています:

とエラーが表示されます。

+0

理想的には、私はレコードの数が多いので、 "IN"ステートメントの使用を避けたいと思います。 JOINでこれを行う方法はありますか? – Andrew

答えて

3

を「あなたはFROM句に更新のターゲット表 『_adagio_items』を指定することはできません」この方法を試してみてください:

UPDATE _adagio_items 
LEFT JOIN catlg_products ON _adagio_items.ItemId = catlg_products.name 
SET _adagio_items._new_record = 1 
WHERE catlg_products.name IS NULL 
+0

これはまさに私が探していたものです。ありがとうございます – Andrew

関連する問題