2013-10-03 59 views
0

我一直在zen cart電子商務網站上進行了相當廣泛的工作,我對PHP有很好的瞭解,但只有SQL的基本知識。 我的問題不是禪宗的購物車或PHP,因爲我已經涵蓋了三個表格之間的相互作用。

表1:inventoryexport - >列:item_num,ITEM_PRICE,item_stock
表2:zen_products_supplier - >列:products_id,australiait_code
表3:zen_products - >列(噸,但這裏是相關的):products_id, products_price
使用SQL select查詢的結果更新表格

現在我想要做的是通過選擇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 

任何幫助將不勝感激。

+0

可能重複:http://stackoverflow.com/questions/224732/sql-update-from-one-table-to-another-based -on-a-id-match –

+0

@Sumit在這個問題中只有兩個表,如果我只用兩個表工作,這將很容易解決,但這是增加複雜性,使第三個工作更復雜。我也可以注意到,在問題中提到的不同表中的列有不同的名稱,這也是不同的。我可能只是錯了,但我不明白這個解決方案對我目前的問題有什麼幫助。 – nemesiswho

回答

0

我結束解決我的愚蠢問題,通過簡單地分爲兩個步驟的SQL。

UPDATE 
inventoryexport ie, zen_products_supplier zps 
SET 
ie.products_id=zps.products_id 
WHERE ie.item_num=zps.australiait_code; 

然後我執行以下內容:

UPDATE 
zen_products zp, inventoryexport ie 
SET 
zp.products_quantity=ie.item_stock, zp.products_price=ie.item_price 
WHERE 
ie.products_id=zp.products_id; 
0

如果要求與清單中導出表的所有產品的總ITEM_PRICE其中item_num = australiait_code以更新zen_products表中的「products_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的所有產品的庫存導出表中的總item_price以及zen_products_supplier中的產品id在zen_products表中更新的當前行的product id後面的查詢將會工作:

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 

希望這會有所幫助。

+0

我相信你的第二個例子是正確的吧,我不想要這個總數。我會看看我是否可以從你的答案中解決問題。謝謝你的幫助 – nemesiswho

+0

謝謝..如果你發現我的答案有幫助..請upvote !!! – Deepshikha

+0

我目前沒有足夠的聲望來提高您的答案。我很抱歉。 – nemesiswho