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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [PostgreSQL] vue avec jointures

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PostgreSQL] vue avec jointures

n°883512
Jean-Miche​l Lambert
Posté le 26-10-2004 à 22:33:10  profilanswer
 

Bonjour,
 
Je cherche à faire une vue qui va sélectionner des champs issus de plusieurs tables pour pouvoir faire un select directement sur la vue.
 
J'ai plusieurs tables ou sous requêtes (table1, table2, table3) avec le même identifiant: table1.id, table2.id, table3.id.
 
Je veux obtenir un tableau du type
id        champ1        champ2    
1         toto           tata
2         titi           tutu
...
 
La requête est la suivante:
select champs from tables where  
table1.id=table2.id and
table2.id=table3.id
 
Mon soucis est un problème d'indice: Sur la même ligne j'ai des champs qui vérifient table1.id=table2.id (id=1 par exemple) et d'autres qui vérifient table2.id=table3.id (avec id=2 par exemple).
 
Comment peut-on procéder pour faire cette vue ?
 
Est-on obligé de passer par une fonction pl/pgsql avec une boucle sur id et de faire des insert dans une table à chaque itération?
for tampon in select champs from tables where  
table1.id=id and
table2.id=id and
table3.id=id loop
insert ...
end loop;
 
Dans ce cas, s'il y a des trous de numérotation dans mes id, comment faire l'itération ?
 
Merci pour l'aide.

mood
Publicité
Posté le 26-10-2004 à 22:33:10  profilanswer
 

n°883523
Lam's
Profil: bas.
Posté le 26-10-2004 à 22:46:19  profilanswer
 

Ca marche pas ça ?  
 
SELECT champs FROM (table1 t1 INNER JOIN table2 t2
        ON t1.id = t2.id)
     INNER JOIN table3 t3 ON t1.id = t3.id;
 

n°883873
Arjuna
Aircraft Ident.: F-MBSD
Posté le 27-10-2004 à 14:09:14  profilanswer
 

Euh...
 
Poste un exemple de données (3 lignes pour chacune de tes 3 tables) et le résultat que tu veux. Ta question n'est pas claire du tout, comprend pas.
 
A priori, un simple :
 
CREATE VIEW maVue AS
select table1.id, table1.nom nom1, table2.nom nom2, table3.nom nom3
from table3, table2, table1
where table2.id = table1.id and table3.id = table2.id
 
Mais je ne vois pas trop où est le problème, puisque c'est ce que tu as posté en première ligne.


Message édité par Arjuna le 27-10-2004 à 14:09:44
n°884211
gizmo
Posté le 27-10-2004 à 18:31:44  profilanswer
 

Je prends le mix entre lam's et Arjuna et je relance de 1.

n°884464
Jean-Miche​l Lambert
Posté le 27-10-2004 à 22:07:53  profilanswer
 

Je comprends votre embarras...
 
En créant des tables exemples, j'ai pu voir que mon problème ne venait pas du tout de ce que je pensais, car effectivement la requête fonctionne parfaitement comme l'ont dit Arjuna et Lam's.
 
Ca venait de la construction de ma requête où des sous requêtes mettaient la zizanie.
 
Désolé c'était tout bête, mais je voyais pas d'où ça venait.
 
Merci


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

  [PostgreSQL] vue avec jointures

 

Sujets relatifs
Problème de jointures multiples[Postgresql] Erreur étrange sur la création d'une procédure
[postgresql] Les requêtes hiérarchiques ?PHP ave des vues postgresql
occupation disque postgresql / maintenancepostgresql me fait tourner en bourique
Problème modification de taille du champ d'une table en postgresQL.[Résolu][PostgreSQL 7.4.2] pb d'insertion de caractères accentués
[postgresql] enregistrer les changements depuis une migrationJDBC PostGreSQL, insertions de PL/PGSQL trigger et fonction marche pas
Plus de sujets relatifs à : [PostgreSQL] vue avec jointures


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