creer une table résultat de jointure

classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

creer une table résultat de jointure

kezami
Bonjour,

j'ai fais une jointure de table et le résultat était afficher sur le "Output" sous forme texte pas en table.
alors la question c'est comment mettre mes résultats de jointure sous forme de table ?

Merci pour votre aide!

Nadia
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

Alexis.G
Salut !

On peut voir ton code SQL, s'il te plait ? je veux dire, la requête
que tu utilises :-)

Comme ça, je dirais que tu fais une requête de type

select a, b from...

et que tu as le retour dans output. Pour créer un table, c'est presque
pareil. Il faut rajouter une clause "create table" au début :

create table maNouvelleTable as select a, b, from...

Je suis pas un grand technicien SQL, donc je me trompe peut être. Mais
j'y crois !

N'hésite pas à nous dire si ça ne va pas, et à nous donner autant
d'infos que possible. Et puis même si ça marche, n'hésite pas à le
dire ;-)

@+

Alexis.

2010/8/26 kezami [via OrbisGIS]
<[hidden email]>:

> Bonjour,
>
> j'ai fais une jointure de table et le résultat était afficher sur le
> "Output" sous forme texte pas en table.
> alors la question c'est comment mettre mes résultats de jointure sous forme
> de table ?
>
> Merci pour votre aide!
>
> Nadia
>
>
> ________________________________
> View message @
> http://orbisgis.3871844.n2.nabble.com/creer-une-table-resultat-de-jointure-tp5464829p5464829.html
> To unsubscribe from OrbisGIS, click here.
>



--
OrbisGIS supporter.
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

vhung
Salut,

Comme Alexis t'a expliqué, tu doit créer une nouvelle table.

Pour jointure de table, tu fait

create table maNouvelleTable as maTable1 union maTable2;

la condition:   les champs de 2 tables sont identiques.  

ou
create table maNouvelleTable as select a.*, b.*{except the_geom} from maTable1 as a, maTable2 as b where a.ID=b.ID;

--> prendre tous les champs de maTable1 et maTable2(sauf le champ the_geom) dont ID de maTable1 = ID de maTable2;


VH
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

kezami
Salut,

ça fonctionne très bien avec : create table maNouvelleTable as ...

Merciii :)
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

ebocher
Administrator
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

quentindarakdjian
In reply to this post by vhung
Bonjour,

Je veux réaliser une jointure de 2 tables (A et B). La table B ne contient que des lignes de la table A (A contient donc plus de ligne). B a un champ de plus que A (valeurs positives).
Je veux lier ces 2 tables en conservant toute les lignes de la table A, tout en ajoutant le champ supplémentaire de la table B et donner la valeur 0 aux lignes qui ne sont que dans A.

Voila, je pensais que cela allais être simple à réaliser mais je ne m'en sors pas!

Merci.

Quentin
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

Anne
Bonjour Quentin,

Il faut que tu utilises la fonction left join. Tu peux essayer cela :

create table jointure as select a.*, b.champ from A a left B b on a.id=b.id;
update jointure SET champ=0 where champ IS NULL;

En remplaçant id par un champ commun aux tables A et B.
Dis-moi si cela fonctionne.

Anne
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

Anne
Bonjour à nouveau,

Petite erreur de copier coller

create table jointure as select a.*, b.champ from A a left join B b on a.id=b.id;
update jointure SET champ=0 where champ IS NULL;


Anne
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

quentindarakdjian
In reply to this post by Anne
Merci d'avoir pris du temps pour me répondre.

Mais ça ne marche pas, le problème semble venir du LEFT (souligné en rouge)
Voici l'erreur renvoyée: Parse error on line 16 at character 69: found 'LEFT', expected ';'.

Comme explication possible j'ai vu ici:
http://orbisgis.3871844.n2.nabble.com/conserver-l-ensemble-des-objets-en-resultat-td6287265.html#a6287635
que la jointure à gauche n'était pas disponible sur OrbisGIS (en 2011) mais qu'elle était à l'étude! Je suis sous la version 4.0 donc à priori pas de problème si cela a été implémenté. Sous quelle version travail tu?
Reply | Threaded
Open this post in threaded view
|

Re: creer une table résultat de jointure

quentindarakdjian
In reply to this post by Anne
Parfait ça marche, je peux partir en week end l'esprit tranquille  euh non celui la
Merci encore.