2012-12-21 109 views
0

MYSQL更新查詢MYSQL更新表查詢

我需要更新值形成一個表到另一個,如果它們不存在 創造價值如何能做到這一點對於所有的值或表單值從一個ID到另一個

這是查詢,但我需要爲每個ID運行它,這是很多工作,那麼有沒有更簡單的方法?

所以id_product始終是相同的

`

INSERT INTO ps_product_supplier 
(id_product_supplier, id_product, id_product_attribute, id_supplier, 
product_supplier_reference, product_supplier_price_te, id_currency) 
VALUES(NULL, 6216, 0, (SELECT id_supplier FROM ps_product WHERE id_product = 6216, 
(SELECT supplier_reference FROM ps_product WHERE id_product = 6216), 
(SELECT wholesale_price FROM ps_product WHERE id_product = 6216), 3); 
+0

你應該去文檔http://dev.mysql.com/doc/refman/5.1/en/insert-select.html –

回答

3

使用INSERT...SELECT語法:

INSERT IGNORE INTO ps_product_supplier 
(id_product_supplier, id_product, id_product_attribute, id_supplier, 
product_supplier_reference, product_supplier_price_te, id_currency) 
SELECT NULL, id_product, 0, id_supplier, supplier_reference, wholesale_price, 3 
FROM ps_product 

關鍵字IGNORE將允許查詢只插入不屬於已經在記錄目的地表。只有當您的目標表在id_product_supplier字段上具有主鍵(或唯一鍵)時,它才能起作用。

+0

我會用這個覆蓋id_products嗎? – mehnihma

+0

我試過了,但問題是有些字段不存在,所以它沒有做任何事 – mehnihma

+0

什麼是確切的錯誤信息? – Jocelyn