Ce forum est maintenant fermé, seule cette archive statique reste consultable.
  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  PB avec sous requete et requete recursive

Bas de page
Auteur Sujet :

PB avec sous requete et requete recursive

n°9774
luc_mencia
Profil : Jeune recrue
Posté le 03-08-2004 à 17:27:32  
 

Bonjour a tous,  
J'ai un probleme sur lequel ca fait plusieurs jours que je butte dessus, j'ai passe des journees a chercher, a tester des requetes dans tous les sens et la je lagg completement... SI quelqun peut m'aider ou me mettre sur une piste ce serai vraiment sympa!!!
 
Je vous expose le probleme :
J'ai un arbre hierarchique suivant :
J'ai une table ou je loge les utilisateurs (intra_user_parent)  
avec les champs id, nom, prenom, login, categorie_id  
une autre table (categories) ou il y a les categories d'utilisateur (ex: concession, agent, commercial, ...) avec les champs id_cat, cat_nom
et une table (intra_user_parent) qui me dit "qui est parent de qui" avec les champs enfant_id, parent_id .
 
il peut y avoir N Concessions  
1 concession peut avoir 1 a N representants  
1 representant peut avoir 1 a N revendeur  
1 revendeur peut avoir 1 a N commerial  
1 commercial peut avoir 1 a N client
 
J'ai besoin d'afficher la liste des client et dans d'autres cas tous les contrat correspondant a 1 concession, hors une concession a plusieurs representants, ainsi de suite jusqu'au client, et si je desire afficher par date de creation des clients, ceux correspondant a la concession, je me retrouve dans l'impasse et si j'utilise 2 ou plusieurs requetes, forcement mes clients sont d'abord tries par representant, puis par revendeur, ... , ainsi de suite jusqu'au client pour enfin trier par date, du coup c'est du nimporte quoi :( :S pareil si je veu trier par statut d'un contrat correspondant au client...
 
J'ai essaye des sous requettes sous mysql v4 et ca ne marche pas...  
exemple de requete teste mais normalement elle ne marchent pas avec une version MySQL anterieur a 4.1:  
 
SELECT nom  
FROM intra_user  
WHERE id =  (
SELECT enfant_id  
FROM intra_user_parent  
WHERE parent_id =  '76'  
)
 
Dois-je repenser mes tables en ajouter? COmment avoir l'equivalent de ce que je recherche sans sous-requetes avec MySQL ?
 
Merci de me repondre si vous avez meme une ptite idee sur mon pb :)
Luc

mood
Pub
Posté le 03-08-2004 à 17:27:32  
 

n°9789
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 04-08-2004 à 13:45:44  
 

J'ai du mal à comprendre ton problème. Ta base m'a l'air correctement construite.
 
Tu peux récupérer la liste des clients d'une concession, ensuite les triés selon la date de leur premier contrat...
 
Attention aux sous-requêtes, elles ne sont parfois pas utiles; la preuve à partir de ton exemple :

Code :
  1. select A.nom from intra_user A, intra_user_parent B where A.id = B.enfant_id and B.parent_id = 76;


 
Attention au type de tes champs, par exemple, dans ton exemple, parent_id n'est pas un numérique, or il devrait surement l'être.


Message édité par ollone le 04-08-2004 à 13:46:20
n°9805
mayavega
Profil : Jeune recrue
Posté le 05-08-2004 à 16:31:20  
 

et ça fonctionne ça ????

n°9812
ollone
Part of the 'One brothers
Profil : Vieux de la vieille
Posté le 06-08-2004 à 02:37:58  
 

Bah oui; c'est censé retourner les noms des enfants de 76...

  FORUM Rue-Montgallet.com
  Programmation
  Php - Sql

  PB avec sous requete et requete recursive

© 2000-2024 Forum.rue-montgallet.com - Tous droits réservés