Requete croisée

Signaler
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
-
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
-
Bonjour,


Je cherche à effectuer une opération dans une base de la façon suivante :

Soit une table PRODUITS :

PRODUIT, CATEGORIE, LIEU_DE_STOCKAGE

et une table LIEUX :

CATEGORIE, LIEU_DE_STOCKAGE

Ma table lieux est remplie initialement, et ma table produits est remplie (sauf  le champ LIEU_DE_STOCKAGE).


Comment puis-je écrire un update (en sql) qui me permettrait de remplir
les champs LIEU_DE_STOCKAGE pour chacun des produits en fonction des
catégories de chaque produit ?


Merci d'avance pour vos réponses.

Simon

3 réponses

Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
si CATEGORIE et LIEU_DE_STOCKAGE sont identiques dans les 2 tables, pourquoi ne pas en mettre qu'un seul?
en plus, on ne connait pas le type des champs et la cle => pas facile de t'aider.

j'aurai plutot utilisé des tables du genre :
Produits(id: int, produit: chaine, categorie: int)
Lieux(id: int, lieu: chaine)
avec Produit.categorie = Lieux.id
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
Sauf votre respect M. Gillemouze... , ce n'est pas vraiment important ici. Peu importe que mon problème soit idiot ou pas (en fait, il l'est surement...), je veux juste savoir s'il existe un script sql qui permet de faire ça, du genre :
update Produits
Set Lieu_de_stockage = ...
(sinon, je suis tout a fait d'accord avec toi)

Simon
Messages postés
991
Date d'inscription
samedi 25 octobre 2003
Statut
Membre
Dernière intervention
29 août 2013
7
tu peux faire un truc du genre
update (select table1.a as A1, table2.b as B2 from table1, table2 where table1.x table2.x) set A1 B2;