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 Mon 05 November 2007 14:43

Douchez Marie-Claire
Juste Inscrit !
Date d'inscription: 5 Nov 2007
Messages: 6

Requete-inverse

Bonjour à tous,
Je cherche à sélectionner, via une requete sql, des entités géographiques d'une table
qui n'intersectent pas d'autres provenant d'une autre table.
Tout le monde connait la fonction 'intersects' , mais comment obtenir l'inverse ?
Merci d'avance pour votre aide.
Marie-Claire

Hors ligne

 

#2 Mon 05 November 2007 14:52

cgrangeon
Participant actif
Lieu: La Défense PARIS
Date d'inscription: 21 Sep 2005
Messages: 78

Re: Requete-inverse

Bonjour,

Je dirais que vous pouvez faire la requête "intersects" puis simplement inverser la sélection.
Est-ce ce que vous recherchez??

Hors ligne

 

#3 Mon 05 November 2007 15:08

Douchez Marie-Claire
Juste Inscrit !
Date d'inscription: 5 Nov 2007
Messages: 6

Re: Requete-inverse

Merci pour la rapidité de la réponseOui, c'est ce que je fais actuellement, mais j'aimerais
pouvoir faire la sélection inverse sans intervenir 'manuellement'
mais plutôt en utilisant avec une fonction MApbasic.
Marie-Claire

Hors ligne

 

#4 Mon 05 November 2007 15:49

Cartosig
Participant assidu
Date d'inscription: 16 Oct 2006
Messages: 222

Re: Requete-inverse

Rien n'empêche de faire une sélection inverse dans le code MB...
D'un point de vue SQL et recherche spatiale ça doit être plus rapide de chercher les relations qui existent que celles qui n'existent pas...

Et "where Truc.Obj Not Intersects Machin.Obj" ça ne marche pas (j'en doute mais on ne sait jamais) ?

Hors ligne

 

#5 Mon 05 November 2007 16:25

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Requete-inverse

Bonjour
Si on demande:

Code:

Select * from truc, machin where not truc.obj Intersects machin.obj

...on obtient le message d'erreur: "aucune jointure n'est spécifée entre truc et machin bla, bla..."
Mais si on demande:

Code:

Select * from truc where not obj intersects any (select obj from machin)

CA MARCHE !! smile 
morale: toujours penser à utiliser des sous sélections quand c'est possible

Hors ligne

 

Pied de page des forums

Powered by FluxBB