Aide requête sql update en fonction champ autre table [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
30 octobre 2013
-
 cockpitinferno -
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

5 réponses

Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
21
comprend pas ta requete, est ce que les deux champs sont liée, si oui, utilise les clé pour connecter ces données.
Messages postés
7
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
30 octobre 2013

je ne sais pas si ces champs sont lié et je ne sais pas ce qu'est une clé?
je ne m'y connais pas du tout en bdd.
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
21
exprime au moins ce que tu souhaite alors faire, cé mieux d'aller dès la conception. qu'est ce que tu souhaite mettre en BD?
Messages postés
7
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
30 octobre 2013

oui je vais essayer de résumer:
c'est sur une boutique prestashop. dans la fiche produit il y a un champ texte pour quand le produits est en stock et un autre quand le produit est hors stock. au départ quand j'avais un article sur commande je mettais quand même du stock et pour le produit en question je changeais le champ en stock en mettant un délai.

mais je souhaiterais passer à l'autre méthode, càd avoir En stock pour les produits en stock, passer en ""commandable " les produits hors stock et donc j'ai changé tous les champs "hors stock" pour mettre le texte souhaité. ce que je souhaiterais c'est mettre une quantité 0 pour tous les champs qui ont ce texte dans le champ hors stock.

le champ quantité est dans la table product et le champ hors stock est dans la table product_lang. et tout ca c'est dans mysql.
j'espère avoir été claire dans mes explications...
comme j'ai pas mal de produits commandable le faire à la main serait un peu long...

merci d'avance pour vos réponses.
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
21
je n'ai pas compris grand chose dans tes explications. Je ne vois pas la raison pour laquelle tu crée un autre champ pour spécifier hors stock et quantité. Quand on sait que pour une valeur quantité = 0 le produit est hors stock et si quantité est different de 0, c'est qu'il est en stock. C'est un peu mieux comme ça, tu auras moins de champs. Ce que tu auras a faire c'est selectionner les produits where leur quantité est different de 0, pour signifier produit en stock, et quantité egale a 0 pour les produit commandable.
Messages postés
7
Date d'inscription
vendredi 27 juin 2008
Statut
Membre
Dernière intervention
30 octobre 2013

ce n'est pas moi qui créé les champs ou la BBD c'est une boutique prestashop donc la bdd est comme elle est. je ne peux pas la modifier.

c'est l'inverse que je veux. je ne veux pas spécifier un champ en fonction de la quantité mais la quantité en fonction du contenu d'un champ.
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
21
qu'est ce que tu as comme information, du genre, as tu la clé de enregistrement de la table1 que tu souhaite modifié, ou une celle de la table2. Si tu a la clé de l'enregistrement de la table1 que tu souhaite modifié, alors pas la peine utilisé la table2, si la clé est celle de table2, alors il doit y avoir un lien entre la table1 et la table2 pour te permettre de switch de la table2 to table1, on appelle ça foreign key. Donc la question est qu'elle infos t'a, quelle est la table que tu souhaite modifié? et s'il ya une relation entre les deux tables?

j'ai finalement trouvé via un autre forum:
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é');

voilà ca pourra peut etre servir à qqun.