0

私は禅カートの e コマース Web サイトでかなり広範囲に作業しており、php については十分な知識がありますが、SQL については基本的な知識しかありません。私の質問は、Zen Cart や php に関するものではなく、3 つのテーブル間の相互作用に関するものです。

表 1: inventoryexport -> 列: item_num、item_price、item_stock
表 2: zen_products_supplier -> 列: products_id、
australiait_code

次に、item_num = australiait_code であるすべての製品を選択して、在庫エクスポート テーブルの item_price で zen_products テーブルの「products_price」を更新します。

このクエリで必要な情報を選択できますが、これを zen_products テーブルの更新クエリに直接プラグインする方法がわかりません。

SELECT zen_products_supplier.products_id, inventoryexport.item_price, inventoryexport.item_stock
FROM zen_products_supplier
INNER JOIN inventoryexport
ON inventoryexport.item_num=zen_products_supplier.australiait_code

どんな助けでも大歓迎です。

4

3 に答える 3

0

zen_products テーブルの "products_price" を、item_num = australiait_code であるすべての製品の在庫エクスポート テーブルの合計 item_price で更新する必要がある場合、次のクエリが機能します。

update zen_products  
set products_price  = (select sum(ie.item_price) 
                       from inventoryexport ie join zen_products_supplier zps on ie.item_num = 
                       zps.australiait_code )

ただし、zen_products テーブルの "products_price" を、item_num = australiait_code であり、zen_products_supplier の製品 ID = zen_products テーブルで更新されている現在の行の製品 ID であるすべての製品の在庫エクスポート テーブルの合計 item_price で更新する場合は、次のようにします。クエリが機能します:

update zp
set zp.products_price = (select sum(ie.item_price)                     
                     from zen_products_supplier zps  
                     join inventoryexport ie on ie.item_num = zps.australiait_code
                     where zps.products_id = zp.products_id)
from zen_products as zp

お役に立てれば。

于 2013-10-03T12:33:44.023 に答える
0

あなたのトピックに対する良い答えは次のとおりです 。MySQL - SELECT クエリに基づく UPDATE クエリ

おそらく、一時テーブルを作成する必要があります。同じテーブルから選択してテーブルを更新すると問題が発生する可能性があるためです。

于 2013-10-03T11:27:08.880 に答える