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 :
SELECT * FROM Membre AS t1 LEFT JOIN Siret AS t2 ON (t2.SiretId = t1.SiretId) LEFT JOIN Entreprise AS t3 ON (t3.SiretId=t1.SiretId) WHERE t1.MembActif='1' AND ((t1.MembConseiller='1' AND (t1.ProfilId ='2' OR t1.ProfilId ='3')) OR (t1.MembConseiller='0' AND t1.MembContact='1' AND (t1.ProfilId ='2' OR t1.ProfilId ='3'))) ORDER BY t1.MembNom ASC LIMIT 0,20
Je dois également ajouter une recherche sur des actions des membres, sur le nombre de visites médicales et contre-visites qu’ils ont réalisés et entre une première date et une deuxième date.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:
SELECT COUNT(*) as Nbvisites FROM Visite WHERE MembreId='".$data_rech[MembreId]."'
1 – Je dois faire une requête pour connaitre le nombre de visite (Table Visite) de chaque membre
1 – Je dois faire une requête pour connaitre le nombre de contre-visite (Table CVisite) 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 pour votre réponse.