|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 3 ![]() |
Bonjour,
J'ai une requête sur une table de fait avec plusieurs jointures sur des tables de référentiel qui me renvoie x lignes dont certaines ont tous leurs champs égaux à la valeur 0. Je souhaiterais exclure de mon résultat ces faits et ne conserver que ceux pour lesquels il y a au moins un des champs différent de 0. J'ai essayé la fonction MINUS avec requête minus requête and champ1=0 and champ2=0 and champ3=0 etc ... avez-vous une solution ? merci de votre aide |
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Bonjour,
Code sql :
|
||
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 3 ![]() |
Merci aieeeuuuuu
mais la requête s'avère très longue en éxécution. il n'y a pas moyen de la découper afin d'optimiser les performances ? Merci par avance |
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
En l'absence de la DDL de ta table, des index dont elle dispose et de la requete que tu as écrite, je t'ai proposé une solution "générique"
Avec plus d'informations, on pourrait effectivement prévoir quelque chose de plus optimisé... |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 3 ![]() |
OK ça me semble compliqué de te donner tout le détail.
Peux-tu me dire si la 1ère solution envisagée te paraît correcte ? merci encore pour ton aide |
|
|
00
|
|
|
#6 |
![]() ![]() |
Pourquoi ça ?
Donne nous le résultat de SHOW CREATE TABLE la_table sur chaque table concernée par la requête.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 | |||
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Citation:
... car j'ai lancé Code ??? :
sur mon système, il me dit qu'il y a une erreur de syntaxe ![]()
|
|||
|
|
00
|
|
|
#8 | ||
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
on peut aussi utiliser un UNION
Code :
|
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() Inscription : janvier 2010 Messages : 1 084 ![]() |
Attention, il ne s'agit pas ici de vérifier une égalité, mais une inégalité !
une série d'union sera donc sans doute contre-performant : une ligne n'aura aucune valeur à 0 sera candidate à toutes les requêtes, et devra être dédoublée ensuite ! Enfin comme tu dis, s'il n'y a pas d'index de toute façon... |
|
|
00
|
|
|
#10 | |
|
Membre émérite
![]() Olivier DehorterIngenieur de recherche - Ecologue Inscription : juin 2003 Messages : 697 ![]() |
Citation:
comme quoi il vaut mieux reflechir 2 fois avant d'ecrire quoique ce soit mais un peu plus d'infos seraient le bienvenu... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com