[SQL] Aide à la réalisation d'une simple requête update

Aide à la réalisation d'une simple requête update [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 27-10-2008 à 16:59:57    

Bonjour,
 
Mon problème est simple. Je dois modifier le prix de vente de plusieurs produits, situés dans les sous-catégories d'une catégorie commune.
 
Autrement dit, je voudrais:
 
Changer le prix de 59.99 à 69.99 de tous les produits situés sous la catégorie "décoration".
 
Je pensais à qqch comme:
 
Update products
Set products_price = 69.99
WHERE category = decorations
 
Le problème est qu'il y a des sous-cat sous decoration... Contenant des produits qui doivent être modifiés. Ma reqûete modifiera-t-elle uniquement la racine de decoration, ou aussi les sous-cat?
 
Enfin, comment faire le lien entre la table products et la table categories?


Message édité par Brush653 le 28-10-2008 à 11:36:37
Reply

Marsh Posté le 27-10-2008 à 16:59:57   

Reply

Marsh Posté le 28-10-2008 à 00:40:15    

bouge pas, je vais chercher la description de tes tables dans ma boule de cristal...

Reply

Marsh Posté le 28-10-2008 à 08:25:08    

Ta requete ne modifira que la category "decoration", tu dois spécifier les category enfantes de "decoration" dans le update pour qu'elles soient aussi prisent en compte

Reply

Marsh Posté le 28-10-2008 à 11:17:19    

C'est bien ce qu'il me semblait. Mais comment faire cela?
Imaginons qu'il y ait 20 sous cat, dois je les spécifier manuellement toutes?
N'y a-t-il pas moyen de spécifier que l'on veut changer tous les fichiers de ce répertoire, sous cat inclus?

Reply

Marsh Posté le 28-10-2008 à 11:18:30    

mais elles apparaissent comment dans la table tes sous cat ?

Reply

Marsh Posté le 28-10-2008 à 11:22:30    

Brush653 a écrit :

Imaginons qu'il y ait 20 sous cat, dois je les spécifier manuellement toutes?


Sans doute pas. Sans voir le schema, dur dur. :(
 

Brush653 a écrit :

changer tous les fichiers de ce répertoire, sous cat inclus?


Hein? Quels fichiers? Quel répertoire? [:pingouino]  
 
 
"réalissation" -> "réalisation" (coquille dans ton titre)


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-10-2008 à 11:24:37    

Il y a un champ parent_id dans les categories.
 
Le champ de base est le 25, puis le champ decoration le 89.
 
Ne serait il pas dès lors possible de demander la modification de tous les prix, des produits, dont la categorie PARENT de leur categorie est = 89 ?
 
 
(ou alors je n'ai rien saisis à ta question?:d)

Reply

Marsh Posté le 28-10-2008 à 11:45:01    

moi j'ai rien compris à ta réponse.
Pourquoi tu parles du champs décoration. "décoration" n'est pas un des libellés des catégories ?
Il y a une table des catégories ?
parce que l'impression que donne ta première requête est que le libellé de la catégorie est directement renseigné dans la table des produits?

 

Donne une description claire de tes tables, sinon on parle dans le vide


Message édité par tet2neu le 28-10-2008 à 11:45:57
Reply

Marsh Posté le 28-10-2008 à 13:08:51    

bon, je reprends :d
 
categorie AUTO, ID 25
--> categorie DECORATION, ID 89, ID_PARENT 25
      --->categorie AUDI, VW, SUZUKI, .... ID variant selon la cat, ID_PARENT 89
 
 
ca c'est pour les CAT, est ce plus clair?

Reply

Marsh Posté le 28-10-2008 à 13:35:02    

donc ta première requête ne fonctionne pas.
Tu dois avoir dans ta table PRODUIT une clé étrangère vers l'ID de la catégorie
 
Ca donnerait :
 
Update products
Set products_price = 69.99
WHERE ID_CATEGORY = 89
 
Ce qui n'est pas suffisant pour les sous cat de DECORATION
 
Il te faut donc une jointure entre les tables PRODUIT et CATEGORIE et faire une mise à jour des produits qui joignent sur une catégorie avec ID = 89 ou ID_PARENT = 89

Reply

Marsh Posté le 28-10-2008 à 13:35:02   

Reply

Marsh Posté le 28-10-2008 à 13:36:12    

WHERE category = (SELECT category FROM categories WHERE parent_id = 89)

 

+ la cat 89 elle-même of course

 

Un truc dans le genre.

 

On te demande une description de tables à plusieurs reprises mais ça semble venir difficilement. Là tu nous donne un bout de description d'une table et on devine le reste. [:kiki]

 

EDIT: smells like partly grilled :(


Message édité par sircam le 28-10-2008 à 13:36:49

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 28-10-2008 à 13:56:46    

Mais ceci ne marche que pour une arborescence à un seul niveau attention !


Message édité par yellu le 28-10-2008 à 13:57:11
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed