conseil pour big requete SQL

conseil pour big requete SQL - SQL/NoSQL - Programmation

Marsh Posté le 04-09-2008 à 17:25:30    

Salut,
 
Je dois faire une jointure entre deux tables pour rajouter de l'infos dans une table que je n'ai pas.
 
1ere table  

Citation :


infoplus ( cod1,codpi,codomaine,infoplus)


 
2eme table

Citation :


clientinfo ( codclient,codpiclient,codetablissement,codpietablissement,coddomaine)


 
Dans la 1ere table, j'ai mon infos suplementaire et dans les colonnes :
cod1 = j'ai soit le codclient soit codetablissement
codpi = j 'ai soit codpiclient soit codpietablissement
coddomaine = c est le domaine du client
en faite dans cette table j'ai les infos du client, de l etablissement et du domaine et du client;
 
dans la table clientinfo j'ai ce genre d'infos :

Citation :


codclient codpiclient codetablissement  codpietablissement  coddomaine
1         fr          1                 fr                  1
1         fr          1                 fr                  2
2         fr          1                 fr                  1
2         fr          2                 fr                  2


 
je n'arrive pas a voir comment faire pour avoir pour chaque client,domaine et etablissement sont information;
 
c'est clair que je ne peux pas faire de jointure direct entre ses deux tables.
je pensai à faire trois tables à partir de la 1ere table :
une table pour client (cod1,codpi,codomaine,infoplus)
une table pour etablissment (cod1,codpi,codomaine,infoplus)
une table domaine (cod1,codpi,codomaine,infoplus)
 
et faire ensuite 3 jointure successive comme ceci

Citation :


clientinfo.codclient = infoplus.cod1
clientinfo.codpiclient = infoplus.codpi
 
clientinfo.codetablissement = infoplus.cod1
clientinfo.codpietablissement = infoplus.codpi
 
clientinfo.codclient = infoplus.cod1
clientinfo.codpiclient = infoplus.codpi
clientinfo.coddomaine = infoplus.coddomaine


 
est-ce lourd ?faisable ?
 
Merci de votre aide
 
 
 

Reply

Marsh Posté le 04-09-2008 à 17:25:30   

Reply

Marsh Posté le 04-09-2008 à 17:34:19    

J'ai pas saisie les différents type de cas que tu veux obtenir en retour, mais avec les jointure ("left inner join", "left outer join", ...) et les unions ("ma première requête" union "ma seconde requête" union " ma troisième requête" ) c'est possible.

Reply

Marsh Posté le 04-09-2008 à 20:23:38    

en faite dans la table infoplus j'ai ceci:
Les clé(clé composé) des client,etablissement (cod1,codtech,codpi)
et la clé des domaines du client (cod1,codtech,codpi,coddomaine) et la validation pour chaque clé

Citation :


cod1 codtech codpi coddomaine validation
1 x fr 1  N
1 v fr 2  O
1 x fr   O
1 v fr   O  
1 g fr   O
2 r fr 1  O
2 u fr 2  N
2 r fr   O
2 u fr   O
2 m fr   O
 
 


 
et pour la table client info j ai ceci plustot,j avais oublier les colonnes codtech

Citation :


codclient codtechclient codpiclient codetablissement  cotecheta codpietablissement  coddomaine  
1         x  fr          1                 g  fr                  1  
1         v  fr          1                 g  fr                  2  
2         r  fr          1                 g  fr                  1  
2         u  fr          2                 m  fr                  2  


 
Ce que j'essai d'avoir en sorti, c'est la colonne validation pour chaque clés.
 
 

Citation :


codclient codtechclient codpiclient valclient codetablissement  cotecheta codpietablissement  valeta coddomaine valdomaine  
1         x  fr           O  1                 g  fr             O      1   N
1         v  fr           O  1                 g  fr             O     2   O
2         r  fr           O  1                 g  fr             O      1   O
2         u  fr           O  2                 m  fr             O      2   N

Reply

Marsh Posté le 13-10-2008 à 17:13:51    

personne ne voit ?

Reply

Marsh Posté le 14-10-2008 à 16:42:03    

est-ce possible en pl/sql ?

Reply

Marsh Posté le 14-10-2008 à 17:19:12    

c'est d'un clair...
 
dans ta table des infos, qu'est-ce qui te permet de détecter s'il s'agit de codes client ou de codes établissements dans tes deux champs cod1 et codpi ?

Reply

Marsh Posté le 14-10-2008 à 17:21:08    

sinon, franchement, c'est une bête jointure avec 3 alias et des critères de jointure différents, je crois pas ce qu'il y a de complexe là dedans... faudrait juste savoir comment relire ta table surtout

Reply

Marsh Posté le 14-10-2008 à 18:01:05    

arf desolé, j'ai resolu ce post en faite,
je pensai que c etait un autre, plus complexe

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed