0

私はeコマースショップを持っており、週に1回、倉庫は価格が変更された製品のみを別のテーブルに配置します。最初の表の価格を他の表の選択した製品の新しい価格で更新するにはどうすればよいですか?mysqlのみで実行できない場合は、いくつかのphpも自由に使用してください。

このコマンドを試しましたが、SELECTで一致するものが見つからない場合は、元の価格を変更せずに0に変更します。

UPDATE product_catalogue pc
SET pc.price = (SELECT new_price
                FROM product_catalogue_updated pcu
                WHERE pc.product_id = pcu.product_id)
4

2 に答える 2

1
UPDATE product_catalogue pc,product_catalogue_updated pcu 
SET pc.price = pcu.new_price 
WHERE pc.product_id = pcu.product_id

このクエリを使用する前に、DBをバックアップしてください

于 2012-10-21T19:40:50.883 に答える
1

これは1つの可能な解決策です:

UPDATE product_catalogue pc
SET pc.price = (
  SELECT new_price
  FROM product_catalogue_updated pcu
  WHERE pc.product_id = pcu.product_id
)
WHERE pc.product_id IN (
  SELECT pcu.product_id FROM product_catalogue_updated pcu
)

これもうまくいくかもしれません:

これは機能しません(しかし、いいでしょう):

UPDATE product_catalogue pc
SET pc.price = (
  SELECT new_price
  FROM product_catalogue_updated pcu
  WHERE pc.product_id = pcu.product_id
) AS pprice
WHERE pprice IS NOT NULL
于 2012-10-21T19:40:56.553 に答える