Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1407 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  aide requête sql updateen fonction champ autre table

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

aide requête sql updateen fonction champ autre table

n°2208253
cockpitinf​erno
Posté le 26-10-2013 à 16:06:39  profilanswer
 

Bonjour,
après maintes recherches sur le wen je reste sans réponse,
je souhaiterais mettre à jour une quantité d'un champ a d'une table 1 en fonction du texte contenu dans le champ b d'une table2.
j'ai cherché partout et essayé plusieurs trucs mais je n'arrive pas à bien comprendre ce que je fait et du coup ca ne marche pas car j'y vais un peu au pif.
 
j'ai essayé ca:
UPDATE 'table1' SET 'quantity'='0' WHERE table2.champb' = 'Délai de livraison: 8 à 10 jours sous réserve de disponibilité')
 
mais ca ne fonctionne pas
 
est ce que qqun pourrait me donner la bonne syntaxe svp.
merci

mood
Publicité
Posté le 26-10-2013 à 16:06:39  profilanswer
 

n°2208254
Farian
Posté le 26-10-2013 à 16:34:53  profilanswer
 

Bonjour !
 
Votre description du problème est insuffisante : Vous voulez mettre un champ à 0 dans tous les enregistrements d'une table en fonction de la valeur d'un champ dans un enregistrement d'une autre table ...
 
Quel doit être le lien entre les enregistrement des deux tables ? (quelle est la clé de jointure ?)
 
Bonne continuation !

n°2208255
lasnoufle
La seule et unique!
Posté le 26-10-2013 à 16:36:51  profilanswer
 

Il faut plus de details sur:
- quel base de donnees (vu que la syntaxe va probablement etre differente selon la BDD)
- ton modele de donnees. A minima: comment tu relies un enregistrement de ta table1 a un de ta table2 (ca n'est pas visible dans ton code).
 
D'autre part, meme sans savoir quelle BDD tu utilises, la syntaxe de ton bout de code a l'air incorrecte: pas de quote ouvrante pour " table2.champdb' ", parenthese fermante a la fin alors que nulle part il y en a une d'ouvrante... Si ca fait partie d'un bloc de code plus gros, a la limite ca serait plus comprehensible pour nous si tu copies le tout.


---------------
C'était vraiment très intéressant.
n°2208257
cockpitinf​erno
Posté le 26-10-2013 à 16:47:52  profilanswer
 

c'est sur une base prestashop. en fait je souhaite remettre à 0 toutes mes quantités de mes produits sur commande.  
mais je ne sais pas quelle est la clé de jointure.
 
pour être plus clair:  
quand produit pas en stock, il y a possibilité de le commander quand même et le champ texte indique le message que vous souhaitez
mais avant je n'utilisais pas ca. je mettais du stock tout le temps et je changeais le message individuellement pour chaque produit
et maintenant je suis obligée de tout modifier pour pouvoir utiliser cette fonctionnalité.
 
pour ceux qui connaissent presta ca se joue entre la table product_lang et la table product


Message édité par cockpitinferno le 26-10-2013 à 16:50:12
n°2208268
lasnoufle
La seule et unique!
Posté le 26-10-2013 à 19:02:51  profilanswer
 

K, je connais pas Prestashop mais le MDD est trouvable sur leur site (http://doc.prestashop.com/download/attachments/1409078/prestashop-datamodel.png), et ca a l'air d'etre en MySQL.
 
Du coup pour faire ce que tu demandes, je connais peu MySQL et jusqu'ou ca respecte la norme SQL, mais a priori au moins ceci devrait marcher:

UPDATE product SET quantity = 0  
WHERE id_product IN (SELECT id_product FROM product_lang WHERE description = 'Délai de livraison: 8 à 10 jours sous réserve de disponibilité');

Apparemment MySQL permet aussi de le faire en passant par une jointure, a tester:

UPDATE product p, product_lang pl  
SET p.quantity = 0  
WHERE p.id_product = pl.id_product  
  AND pl.description = 'Délai de livraison: 8 à 10 jours sous réserve de disponibilité';

Maintenant vu la gueule du MDD, j'ai pas l'impression que tu te serves des tables product/product_lang de maniere appropriee, mais bon ne connaissant pas le produit je peux me tromper.


---------------
C'était vraiment très intéressant.
n°2208369
djtotofr
Posté le 28-10-2013 à 07:41:44  profilanswer
 

Il faut mettre table1 join table2 on ( ... ) en mysql . Sinon il fait un produit des tables.. et vla le temps que ça prend

n°2208488
cockpitinf​erno
Posté le 28-10-2013 à 22:23:07  profilanswer
 

je verrais ca demain un peu plus reveillée. je viens de mettre tout mon site à jour donc j'ai encore pas mal de détails à fignoler et ensuite je m'attaque à nouveau a ce morceau. merci pour vos messages.

n°2209040
cockpitinf​erno
Posté le 02-11-2013 à 22:15:08  profilanswer
 

merci la 1ère requête fontionne parfaitement. j'ai pu modifier plein de trucs.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  aide requête sql updateen fonction champ autre table

 

Sujets relatifs
Comment sélectionner une option d'un select en fonction d'un autre?comment fonctionne la fonction crypt() ?
appel d'une fonction hors procédure principale dans visual basic[SQL] [SAS] macro sur table
[JQUERY/ASP/ORACLE]TABLE AJAX COLLAPSE PAGINATIONMa table Patient ?
allocation memoire dans une fonctionAide pour création Patch Pes 2014
[C] Besoin d'aide pour le Jeux de la VieProblème zoom sur focus champ IOS7 solutions ou pas ?
Plus de sujets relatifs à : aide requête sql updateen fonction champ autre table


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR