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

GEODATA DAYS 2024

#1 Thu 14 September 2006 16:05

jerome976
Participant occasionnel
Lieu: Mayotte
Date d'inscription: 12 Sep 2005
Messages: 42

séléction des objets d'une table à partir d'une autre table

Bonjour,

Je travaille actuellement sur deux tables : bati et districtes.
Je souhaite imprimer chaque districte indépendamment avec seulement le bâti qui le contient (sans le bâti hors du districte).
Je me disais alors qu'il suffirait, faute de mieux, de faire une requête en demandant de faire apparaitre les objets du bâti à l'intérieur du districte X.
Mais voilà, je ne sais pas comment m'y prendre car visiblement, pour séléctionner un objet d'une table à partir d'un objet contenu dans une autre table, il faut faire une jointure.

Merci pour votre aide. big_smile


Jérôme Blanchet
Chargé de mission SIG
Direction de l'Equipement - Mayotte

Hors ligne

 

#2 Thu 14 September 2006 16:20

gecomo
Participant occasionnel
Date d'inscription: 13 Aug 2006
Messages: 38

Re: séléction des objets d'une table à partir d'une autre table

Bonjour,

Il y a un moyen simple en faisant une requête SQL, puis en sélectionnant les deux tables voulues, l'une après l'autre. Dans la partie CRITERES apparaît la mention Table1.Obj Contains Table2.Obj. Puis il faudra sélectionner les colonnes des différentes tables qui devront figurer dans la nouvelle table ainsi créer (Table intersect).

Evidemment, il faut que les points aient des coordonnées X et Y (je ne sais pas trop si ça fonctionne avec les Z aussi, jamais essayé) et dans le même système de référence (pour ça, il y a toujours l'outil Extracteur de coordonnées.

Voilà.

Si il y a encore besoin de renseignements....

Hors ligne

 

#3 Fri 15 September 2006 07:23

jerome976
Participant occasionnel
Lieu: Mayotte
Date d'inscription: 12 Sep 2005
Messages: 42

Re: séléction des objets d'une table à partir d'une autre table

Donc, si je veux séléctionner les objets bâti contenus à l'intérieur d'un districte en particulier (appelons-le X), je n'ai pas d'autre choix que de faire une première séléction pour réaliser une jointure, puis faire enfin la séléction qui m'interesse ?
Il n'existe pas de procédés permettant de faire ma séléction en une seule étape (sans jointure préalable) ?


Jérôme Blanchet
Chargé de mission SIG
Direction de l'Equipement - Mayotte

Hors ligne

 

#4 Fri 15 September 2006 09:06

gecomo
Participant occasionnel
Date d'inscription: 13 Aug 2006
Messages: 38

Re: séléction des objets d'une table à partir d'une autre table

Bonjour,

Qu'entendez-vous par jointure ? Une nouvelle table ?
Dans la requête SQL, vous pouvez demander à ce que le résultat vienne dans une nouvelle table (ce que nous faisons généralement au bureau) ou non. Mais de toute manière, vous ne couperez pas à la requête SQL car c'est la seule qui permet (à ce que je sais) de requêter sur la position spatiale (ce qu'indique le .obj) d'éléments.

En gros, vous avez déjà une table de bâtie (avec coordonnées XY) et une table de districts (avec coorodnnées XY). Vous faites une requête SQL et vous créer une nouvelle table qui comprend, pour le district 1 tous les bâtis dedans (avec des colonnes provenant de la table district originale (comme le nom etc..) et des colonnes qui proviennent de la table bâti (n° d'identification ou autres). Ainsi, pour chaque district, vous aurez une table avec les bâtis contenus dedans.

Cela répond-t-il à la question ?

Hors ligne

 

#5 Fri 15 September 2006 09:38

jerome976
Participant occasionnel
Lieu: Mayotte
Date d'inscription: 12 Sep 2005
Messages: 42

Re: séléction des objets d'une table à partir d'une autre table

Non !

J'entend par jointure la première requête qui créera une table temporaire sur laquelle je pourrais faire ma requête. Visiblement, pour séléctionner mon bâti à l'intérieur d'un objet de la table districte je DOIS créer une nouvelle table issue d'une requête où les objets de la table districte contient les objets de la table bâti. Et à partir de là, je pourrai enfin séléctionner mon district avec le bâti qui se trouve à l'intérieur. Mais cette démarche ne me convient pas car elle m'oblige à créer une table temporaire intermédiaire alors que j'aimerai simplement faire une séléction directe à partir de mes tables d'origines.

Je reprend : ma table districte comprend 120 districtes numérotés. Je possède par ailleurs une table Bâti. Je veux isoler le bâti contenu dans le districte n°95. Comment-dois-je m'y prendre concrêtement ? Quelle est la méthode qui nécessite le moins de manipulation ?

J'éspère me faire comprendre, si ce n'est pas le cas, peut-être que je demande quelque chose d'irréalisable !


Jérôme Blanchet
Chargé de mission SIG
Direction de l'Equipement - Mayotte

Hors ligne

 

#6 Fri 15 September 2006 09:45

jean-francois Behm
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 212
Site web

Re: séléction des objets d'une table à partir d'une autre table

Bonjour,
une requête SQL s'impose :
dans la zone colonnes : *
dans la zone tables : Bâtis, districts
dans la zone critères : bâtis.obj within districts.obj AND districts.numero=95

Dans la zone résultat dans table : sel_batis_95

Commentaires :
dans colonnes : * (pour avoir tout les champs) ou le nom des colonnes à afficher
dans Tables : commencer par Bâtis pour sélectionner les objets de la couche Bâtis
dans criteres : si le champ numéro est du texte, mettre des guillemets

Le résultat est dans la table temporaire sel_batis_95 qui peut être ajoutée à la carte par le contrôle des couches.

En affichant préalablement à la requete la fenetre MapBasic, la syntaxe SQL s'écrira dans cette fenêtre et il suffira de changer le chiffre dans critere et dans resultat pour créer d'autres selections.
Remarque : les bâtis dont le centre est à l'extérieur du district (donc à cheval sur 2 districts par exemple) ne seront pas sélectionnés.
Bon courage

Dernière modification par jean-francois Behm (Fri 15 September 2006 09:51)


Jean-François Behm
SERVICES GEOGRAPHIQUES
Centres de formation SIG - http://servicesgeographiques.com

Hors ligne

 

#7 Fri 15 September 2006 10:07

jerome976
Participant occasionnel
Lieu: Mayotte
Date d'inscription: 12 Sep 2005
Messages: 42

Re: séléction des objets d'une table à partir d'une autre table

Parfait, c'est exactement ce que je voulais faire !

Merci beaucoup et bon week-end.


Jérôme Blanchet
Chargé de mission SIG
Direction de l'Equipement - Mayotte

Hors ligne

 

Pied de page des forums

Powered by FluxBB