2013-09-23 4 views
0

tableau actuel:valeurs SQL UPDATE basées sur les valeurs des autres lignes

id_product  id_shop  id_lang  description 
--------------------------------------------------------- 
1    1    est   black 
2    1    eng   brown 
3    1    rus   red 
1    2    est 
2    2    eng 
3    2    rus 

Sortie prévue:

id_product  id_shop  id_lang  description 
--------------------------------------------------------- 
1    1    est   black 
2    1    eng   brown 
3    1    rus   red 
1    2    est   black 
2    2    eng   brown 
3    2    rus   red 

Je dois copier la 'description' manquante de id_lang 1 à id_lang 2 pour les produits respectifs et les langues.

J'ai aquery mais cette fois sur et erreur de résultats:

UPDATE `ps_product_lang` t1, `ps_product_lang` t2 
SET t1.description = t2.description 
WHERE t1.id_shop = 2 
AND t2.id_shop = 1 

Je serais très reconnaissant si vous pouviez me corriger si je me trompe.

Répondre

0

Cela devrait fonctionner:

UPDATE `ps_product_lang` t1 join `ps_product_lang` t2 on 
t1.id_lang = t2.id_lang 
SET t1.description = t2.description 
WHERE t1.id_shop = 2 
AND t2.id_shop = 1 
+0

Je vous remercie! D'abord il a affecté 0 lignes mais j'ai réussi à le corriger (enlevé et t1.id_shop = t2.id_shop): MISE À JOUR 'ps_product_lang' t1 joindre' ps_product_lang' t2 sur t1.id_product = t2.id_product et t1.id_lang = t2 .id_lang SET t1.description = t2.description O WH t1.id_shop = 2 ET t2.id_shop = 1 – popkutt

0

Je pense que vous pouvez utiliser id_lang colonne pour fusionner la description comme suivre

UPDATE `ps_product_lang` t1 
INNER JOIN `ps_product_lang` t2 
ON t1.`id_lang` = t2.`id_lang` 
SET t1.`description` = t2.`description` 
WHERE t1.`description` IS NULL 

Vous devrez peut-être changer IS NULL-= '' si la colonne contient des valeurs vides

Questions connexes