|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() clermidy guillaume Inscription : mai 2010 Messages : 3 ![]() |
Bonjour à tous,
Je cherche à savoir s'il existe une syntaxe sql pour lire plusieurs champs dans une sous requête et mettre à jour plusieurs champs. J'explique: Code :
Tout ceci fonctionne mais n'est pas très performant. Je cherche le moyen de ne faire qu'une seule sous requête, car dans mon cas la sous requête est assez lourdes est est exécutée plus d'une fois !! ... Merci d'avance à ceux qui liront et à ceux qui répondront! |
||
|
|
00
|
|
|
#2 | ||||
|
Membre éprouvé
![]() ![]() Hamid MIRAIngénieur développement logiciels Inscription : septembre 2003 Messages : 177 ![]() |
Si toutes les clauses FROM des sous requêtes sont identiques et si également toutes les clauses WHERE des sous requêtes sont identiques (et portent sur la clé primaire) et si seuls les nom des champs changent, alors cela laisse fort à parier que la table faisant l'objet de l'Update est "dénormalisée". Cela arrive souvent dans les environnements OLAP où la base a fait l'objet d'une dénormalisation.
Imaginons les 3 tables csuivantes : . Table Produit Produit (IdProduit, Nom, Prix, IdCategorie ) . Table Catégorie Categorie (IdCategorie, Code, Libelle, FraisDePort) . Table ProduitEtCategorie ( table dénormalisée) ProduitEtCategorie(IdProduit, Nom, Prix, IdCategorie, Code, Libelle, FraisDePort) Si, dans la table ProduitEtCategorie, on veut mettre à jour les champs Code, Libelle, FraisDePort, depuis la table Categorie, on aurait tendance, de prime abord, à écrire ceci : Code SQL :
Une autre solution plus optimale serait de transformer la requête comme ceci : Code SQL :
__________________
"Une idée mal écrite est une idée fausse !" |
||||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() clermidy guillaume Inscription : mai 2010 Messages : 3 ![]() |
Merci pour la réponse je me doutais bien qu'il devait y avoir une solution !
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com