banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Wed 04 July 2018 11:40

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

jointure table pgadmin

Bonjour,

j'ai créée deux tables dans un même schéma dans pgadmin, et j'ai relié ces tables par une clef étrangère.
Or quand je fais une sélection du type

SELECT * FROM table1, table2
JOIN table1
ON table1.id=table2.id ;

j'obtiens le message d'erreur suivant :

ERROR:  relation "table1" does not exist
LINE 1: SELECT * FROM table1, table2
                      ^
SQL state: 42P01
Character: 15

Je n'arrive pas à m'en sortir, ....

Une idée ?

merci d'avance

Hors ligne

 

#2 Wed 04 July 2018 12:14

tevrard
Participant assidu
Date d'inscription: 23 May 2016
Messages: 320

Re: jointure table pgadmin

Je pense qu'il cherche dans le schéma "public" vu que le schéma n'est pas précisé.

Essaye de mettre schema.table1, schema.table2

Hors ligne

 

#3 Wed 04 July 2018 12:21

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

Merci pour l'aide, je viens de tester mais ça ne fonctionne pas non plus ...

Hors ligne

 

#4 Wed 04 July 2018 13:39

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: jointure table pgadmin

Bonjour,

Pour savoir dans quel schéma se trouve table1 :

Code:

select * from pg_tables where tablename = 'table1'

Pour savoir dans quels schémas se fait la recherche :

Code:

show search_path

Jean-Marie
Azimut

Hors ligne

 

#5 Wed 04 July 2018 14:08

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

Merci pour ces infos jmarsac

en effet quand je teste les deux codes, les schémas résultants sont différents.
Comment est-il possible d'indiquer à pgadmin d'effectuer la recherche dans le schéma où sont situées mes tables ?

quand j'indique le schéma avant le nom des tables sous la forme schema.table1 ou 2 comme dit précédent, cela ne fonctionne pas ...

Hors ligne

 

#6 Wed 04 July 2018 14:50

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: jointure table pgadmin

Bonjour,

Attention a votre requete !

FROM table1, table2
JOIN table1

Vous allez faire une jointure ET un produit cartésien entre les tables (toutes les lignes de table1 x toutes les lignes de table2 et une jointure)
Si les tables sont un tout petit peu volumineuses, la requete ne finira jamais, ou va remplir le disque, etc.

Avez-vous mis des majuscules, accents ou caractères spéciaux dans le nom des tables ?
Si c'est le cas, il faut les appeler en mettant des guillemets:

select * from "Table1";

Comme le dit jmarsac, la variable search_path contient les schémas à chercher par défaut quand on ne qualifie pas les noms de tables.
Mais je vous recommande fortement d'ecrire vos requetes avec les noms qualifiées: schema.table.

quand j'indique le schéma avant le nom des tables sous la forme schema.table1 ou 2 comme dit précédent, cela ne fonctionne pas ...


Si la table est est bien dans le schéma "schema" et que vous mettez des guillemets autour du nom de la table si celle-ci contient des caractères spéciaux, c'est pas trop possible que ca ne marche pas.

Apres peuvent se poser des pb de droits d'accès à la table, mais c'est différent de l'existence de la table.

Hors ligne

 

#7 Wed 04 July 2018 15:02

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

Merci pour la réponse

j'ai testé en mettant des guillemets et cela ne fonctionne toujours pas ...
mes noms de tables ne possèdent pas de caractères spéciaux ni de majuscules par contre le nom du schéma contient des majuscules (ce n'est pas moi qui l'ai créée) est ce que le problème peut venir de là ?

Hors ligne

 

#8 Wed 04 July 2018 15:07

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: jointure table pgadmin

Oui, le probleme vient de là.
Il faut mettre des guillemets autour du nom du schema.

Nicolas

Hors ligne

 

#9 Wed 04 July 2018 15:37

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

j'ai essayé et je me retrouve donc avec la formule suivante :

SELECT * FROM "schema".table1, "schema".table2
JOIN "schema".table1
ON table1.id=table2.id ;

j'ai toujours un message d'erreur mais celui-ci a changé :

ERROR:  table name "table1" specified more than once
SQL state: 42712

une idée ? désolée, je suis débutante ...

Hors ligne

 

#10 Wed 04 July 2018 15:43

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

Je viens de résoudre mon problème, tout fonctionne à merveille ! merci à tous pour vos conseils smile

Hors ligne

 

#11 Wed 04 July 2018 17:50

tevrard
Participant assidu
Date d'inscription: 23 May 2016
Messages: 320

Re: jointure table pgadmin

géoflo a écrit:

Je viens de résoudre mon problème, tout fonctionne à merveille ! merci à tous pour vos conseils smile


SI il est possible de toi de poster la solution à ton problème, cela serait apprécié smile

Notamment pour ceux qui ont tenté de te répondre et surtout les futurs lecteurs qui tomberont sur ce topic

Hors ligne

 

#12 Wed 04 July 2018 17:58

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: jointure table pgadmin

Notez comme les messages d'erreur de postgresql sont clairs:

ERROR:  table name "table1" specified more than once
SQL state: 42712

Et effectivement dans votre requete, la table table1 était nommée deux fois dans la clause FROM.

Nicolas

Hors ligne

 

#13 Thu 05 July 2018 08:22

géoflo
Participant occasionnel
Date d'inscription: 30 May 2018
Messages: 11

Re: jointure table pgadmin

Voilà la requête que j'ai tapé et qui a fonctionné :

SELECT * FROM "schema".table1
JOIN "schema".table2
ON table2.id=table1.id ;

merci de votre aide !

Hors ligne

 

Pied de page des forums

Powered by FluxBB