2017-01-08 111 views
0

我想从csv更新我的表。现在来自csv的数据被导入到表“temp_update_stany”,但我不能更新表。查询没有错误,但没有更新。从CSV在一个查询中更新多个表,在MySQL中

表是:

produkt|quantity|price|active|czas 

查询:

UPDATE lp2_product tabela 
     INNER JOIN lp2_stock_available stany ON (tabela.id_product = stany.id_product) 
     INNER JOIN lp2_product_lang lang ON (tabela.id_product = lang.id_product) 
     INNER JOIN temp_update_stany csv ON (tabela.id_product = csv.produkt) 
    SET 
     tabela.active = csv.active, 
     tabela.price = csv.price, 
     lang.available_now = csv.czas, 
     stany.quantity = csv.quantity 
    WHERE 
     csv.produkt = tabela.id_product 
     OR csv.produkt = lang.id_product 
     OR csv.produkt = stany.id_product 

和输出从查询:

Modified records: 0 (Perform queries took 0.0322 seconds (s)). 

但例如 “lp2_product”/行 '活性' 具有值0表示所有产品,temp_update_stany表示所有产品的值为1。

是的,这是prestashop和更新数量和价格的简单脚本。

+2

创建一个完整的,可验证的例子,我打赌你会立即看到错误。 –

+0

顺便说一句:你可以完全删除你的WHERE子句,因为第一个条件总是正确的(冗余到JOIN ON子句),其他两个都没有关系。 –

+0

你的意思是?我没有错误,但这不会更新任何内容。 – Maku123PL

回答

0

根据以上注释,如果没有净变化,UPDATE会报告零行受到影响。因此,如果表格已经更新了所需的值,则UPDATE是无操作,并且没有行受到“影响”。