Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1597 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Grosse requete sur 5 tables, besoin des conseils d'un pro... [résolu]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Grosse requete sur 5 tables, besoin des conseils d'un pro... [résolu]

n°1013609
Gat$
http://www.wowteamfinder.com
Posté le 15-03-2005 à 16:56:50  profilanswer
 

Bonjour,
 
Je bosse sous postgresql 8.0.
 
Malgrés mes efforts, je ne parviens pas à gerer de grosses requêtes sur plusieurs tables. J'ai bien tenté d'utiliser les "UNION" et les sous-"SELECT" mais apparament ca ne suffit pas pour resoudre mon probleme.
 
Je m'explique :  
 

Tables
-------
 
CLIENTS
- id_client
 
ABONNEMENTS
- id_abonnement
- id_type_abo
- id_client
 
TYPES_ABONNEMENTS
- id_type_abo
- id_cours
 
PAIEMENTS
- id_paiement
- id_abonnement
 
COURS
- id_cours


 
Je vous passe les autres champs des tables qui sont inutiles pour trouver une solution, ce qui importe c'est les clés primaire et clés étrangeres.
 
Le problème :
 
Si avec ces 5 tables je fais une vue, n'apparaitront que les clients qui ont un abonnement ainsi que uniquement les clients qui ont effectué un paiement. Car je procède comme ceci :  
 

SELECT * FROM clients, abonnements, types_abonnements, paiements, cours
WHERE  
   clients.id_client=paiements.id_clients AND
   abonnements.id_abonnements...... et pareil avec les autres relations.


 
 
Donc ma question est, comment m'y prendre, pour avoir en une seule requete, un listing de tous les paiements, enregistré, ainsi que tous les abonnements enregistrés pour chaque clients, et faire en sorte que même si certains clients n'ont pas d'abonnements, et/ou n'ont pas encore fait de paiements pour certains abonnement, ces clients s'affichent quand même dans la table retournée en resultat ?
 
J'ai besoin de pouvoir faire ca, car sinon lors du listing des clients, je devrais faire une requête supplémentaire pour chaque client, car par exemple j'affiche en rouge ceux qui sont pas en ordre et en vert ceux qui le sont, ou encore en gris ceux qui n'ont pas d'abonnements en cours... etc...
 
donc jai pas envie qu'un operation se fasse en 100 requetes.
Si il n'y a pas moyen de faire ca en une requete, a la limite si il font ne faire 3 ou 4, avec des sous select pq pas ca me gene pas, quand il faut il faut. mais pas une requete pour chaque neregistrement ca me parrait incoherant.
 
Voila les pro du SQL si vous avez deja rencontré ce probleme, et encore mieux avez une ou plusieurs solutions a me proposer, je suis preneur! car je galère un peu là. :(
 
Merci d'avance tlm ^^
 
A+


Message édité par Gat$ le 16-03-2005 à 00:51:09
mood
Publicité
Posté le 15-03-2005 à 16:56:50  profilanswer
 

n°1013612
skeye
Posté le 15-03-2005 à 16:58:17  profilanswer
 

Jointures externes.
 
[edit]
 
Si j'ai bien lu, j'ai survolé, juste... :whistle:


Message édité par skeye le 15-03-2005 à 16:58:45

---------------
Can't buy what I want because it's free -
n°1013618
Gat$
http://www.wowteamfinder.com
Posté le 15-03-2005 à 17:00:52  profilanswer
 

Ok merci pour ta reponse je v regarder ca de plus pres des mon retour je dois filer, je reposterai si j'ai encore un prob :D
 
a+

n°1014065
Gat$
http://www.wowteamfinder.com
Posté le 16-03-2005 à 00:20:40  profilanswer
 

Ha ben c'est un super outil ca les jointures externes :)
 
Merci bcp entk c exactement ca qu'il me fallait!  :D
 
a+
 

n°1014091
Gat$
http://www.wowteamfinder.com
Posté le 16-03-2005 à 00:49:54  profilanswer
 

Pour ceux que ca peut interresser :
 

SELECT * FROM (((clients LEFT OUTER JOIN abonnements ON clients.id_client = abonnements.id_client) LEFT OUTER JOIN paiements ON abonnements.id_abo = paiements.id_abonnement) LEFT OUTER JOIN abonnements_types ON abonnements.id_abo_type = abonnements_types.id_abo_type) LEFT OUTER JOIN disciplines ON abonnements_types.id_discipline = disciplines.id_discipline;


Ca marche niquel :)


Message édité par Gat$ le 16-03-2005 à 00:50:08

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Grosse requete sur 5 tables, besoin des conseils d'un pro... [résolu]

 

Sujets relatifs
Quel est l'equivalent d'un Update via 2 tables sous MySQL?[access] Ds une requete, convertir un champ texte en date
aide pour un NOT IN sur un resultat d'une requetePublipostage word / postgresql dans un intranet [Résolu]
PostgreSQL/Linux : probleme de création de table [résolu]Imprimer le resultat d'une requete SQL contenu dans un rowsource
Requete non acceptee dans ACCESS -> pourquoi ?[resolu] Probleme ASP/FREE sur un album de photos
comment créer une exception ? [resolu][VB6]Execution Requete en fonction d'une selection dans une combobox
Plus de sujets relatifs à : Grosse requete sur 5 tables, besoin des conseils d'un pro... [résolu]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR