vue avec jointures [PostgreSQL] - SQL/NoSQL - Programmation
Marsh Posté le 26-10-2004 à 22:46:19
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;
Marsh Posté le 27-10-2004 à 14:09:14
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.
Marsh Posté le 27-10-2004 à 18:31:44
Je prends le mix entre lam's et Arjuna et je relance de 1.
Marsh Posté le 27-10-2004 à 22:07:53
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
Marsh Posté le 26-10-2004 à 22:33:10
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.