Aide requête sql update en fonction champ autre table

Résolu/Fermé
cockpitinferno Messages postés 7 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 30 octobre 2013 - 26 oct. 2013 à 15:57
 cockpitinferno - 5 nov. 2013 à 18:53
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
A voir également:

5 réponses

ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
29 oct. 2013 à 12:46
comprend pas ta requete, est ce que les deux champs sont liée, si oui, utilise les clé pour connecter ces données.
0
cockpitinferno Messages postés 7 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 30 octobre 2013
29 oct. 2013 à 14:00
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.
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
29 oct. 2013 à 15:09
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?
0
cockpitinferno Messages postés 7 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 30 octobre 2013
30 oct. 2013 à 08:44
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.
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
Modifié par ajp55 le 30/10/2013 à 14:12
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.
0
cockpitinferno Messages postés 7 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 30 octobre 2013
30 oct. 2013 à 14:16
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.
0
ajp55 Messages postés 426 Date d'inscription dimanche 31 juillet 2011 Statut Membre Dernière intervention 17 février 2015 23
1 nov. 2013 à 12:58
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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cockpitinferno
5 nov. 2013 à 18:53
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.
0