2012-12-21 4 views
0

MYSQL mise à jour de requêtetable de mise à jour MYSQL requête

J'ai besoin de mettre à jour les valeurs forment une table à l'autre et créer des valeurs si elles ne sont pas là Comment puis-je faire pour toutes les valeurs ou les valeurs de forme d'un ID à un autre

Ceci est la requête mais j'ai besoin de l'exécuter pour chaque ID et c'est beaucoup de travail, donc est-il un moyen plus simple?

Alors id_product est toujours le même

`

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

vous devriez aller à la documentation http://dev.mysql.com/doc/refman/5.1/en/insert-select.html –

Répondre

3

Utilisez INSERT...SELECT syntaxe:

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 

Le mot-clé IGNORE permettra à la requête d'insérer uniquement les enregistrements qui ne sont pas déjà en la table de destination. Cela ne fonctionnera que si votre table de destination a une clé primaire (ou une clé unique) dans le champ id_product_supplier.

+0

Est-ce que je remplacer l'id_products avec ceci? – mehnihma

+0

Je l'ai essayé, mais le problème est que certains champs n'existent pas donc il n'a rien fait – mehnihma

+0

Quel est le message d'erreur exact? – Jocelyn