|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 24 ![]() |
Bonjour,
Je souhaiterais obtenir de l’aide pour la construction d’un requête SQL – version MySQL: 4.0.21. J’ai un formulaire qui permet de rechercher des membres (selon leur entreprise, leur nom, leur domaine…). Jusque-là tout roule. Voici la requête d’affichage de mes membres actifs : Code :
Exemple texte : Visite réalisée entre le 01/09/2010 et le 24/12/2010. La recherche sur les dates ne me pose pas de problème puisque la colonne existe dans la base. Exemple texte : Visite entre 2 et 8 Par contre, pour la recherche sur la quantité de visites réalisée par membre, ce n’est pas en base de données J’ai dans l’idée de faire une requête imbriquée: Code :
1 – Je dois faire une requête pour connaitre le nombre de visite de chaque membre 2 – Je dois vérifier si ce nombre se situe dans la tranche transmise par la recherche 3 – Je dois intégrer cette requête dans ma requête principale de recherche Dois-je utiliser COUNT ou HAVING ou les deux ? Avez-vous une idée et un exemple de la manière de construire la requête, merci d’avance. |
||||
|
|
00
|
|
|
#2 | ||||||||||||||
![]() ![]() |
D'abord, quelques remarques sur ta requête...
1) Évite la guerre des étoiles ! 2) Inutile d'ajouter des parenthèses quand elles ne sont pas nécessaires. Par exemple autour de tes conditions de jointure 3) Tes conditions de jointure sont faites sur le numéro de Siret qui est une mauvaise clé car non entière et susceptible de changer. 4) Inutile de mettre les valeurs des colonnes de type entier entre apostrophes. Je suppose que ProfilId est de type entier auto-incrémenté non ? Idem pour MembActif, MembConseiller et MembContact non ? 5) Plutôt que de faire A = x OR A = y, utilises IN Code :
Voici ta requête récrite et simplifiée. Si je ne me suis pas trompé, elle devrait donner le même résultat. Code :
Citation:
Code :
Code :
Code :
Code :
Citation:
__________________
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
|
|
|
#3 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 24 ![]() |
Merci pour tes commentaires sur la requête existante, ça fait progresser et je teste immédiatement ta proposition de requête.
Merci beaucoup. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 24 ![]() |
La requête est fonctionnelle sur notre serveur de test en MySQL: 5.0.44 mais pas sur le serveur du client en MySQL: 4.0.21.
je vais tenter de trouver une autre solution, certains évoquent la création d'une table temporaire, cela me semble trop contraignant. Merci encore pour votre aide très appréciée. Bonnes fêtes. |
|
|
00
|
|
|
#5 | ||||
![]() ![]() |
Citation:
Citation:
Code :
__________________
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
|
|
|
#6 |
|
Invité de passage
![]() Inscription : décembre 2010 Messages : 24 ![]() |
merci,
je vais mettre en place votre solution. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com