Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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 Thu 11 April 2019 10:58

Oliv38
Participant actif
Date d'inscription: 21 Dec 2011
Messages: 142

QGIS 3.4.2: Requête SQL inversée

Bonjour,
je suppose que le sujet a déjà été évoqué quelque part mais je ne trouve pas...

Du coup je cherche assez simplement à écrire une requête spatiale qui me permettent de sélectionner des polygones qui ne sont pas contenus dans d'autres polygones.

Visiblement le "NOT" ne suffit pas et je ne trouve pas de sous-requête qui fonctionne... je bloque clairement sur la syntaxe.
Pour info je me sers du module de base de données "DB Manager" sous QGIS 3.4.2.

Je vous remercie d'avance pour votre aide.

Cdlt, Olivier

Dernière modification par Oliv38 (Thu 11 April 2019 11:00)

Hors ligne

 

#2 Thu 11 April 2019 11:49

sylvain poupard
Participant assidu
Date d'inscription: 19 Mar 2009
Messages: 362

Re: QGIS 3.4.2: Requête SQL inversée

Bonjour,

En attendant la requête idéale, vous pouvez peut-être essayer "inverser la sélection" sur le résultat de la requête "contenu dans d'autres polygones".
Il ne vous restera plus qu'à faire un tri sur les occurrences si nécessaire.
Si c'est pour un résultat automatique via une vue dans DB manager je ne sais pas.

Bon courage

Hors ligne

 

#3 Thu 11 April 2019 11:53

Oliv38
Participant actif
Date d'inscription: 21 Dec 2011
Messages: 142

Re: QGIS 3.4.2: Requête SQL inversée

Bonjour,
merci pour la réponse !
le résultat est bien celui de "Inverser la sélection" qu'il me faut mais effectivement c'est un traitement automatique que je voudrais.

Merci à vous.
Olivier

Hors ligne

 

#4 Thu 11 April 2019 12:08

sylvain poupard
Participant assidu
Date d'inscription: 19 Mar 2009
Messages: 362

Re: QGIS 3.4.2: Requête SQL inversée

Oliv38 a écrit:

Bonjour,
merci pour la réponse !
le résultat est bien celui de "Inverser la sélection" qu'il me faut mais effectivement c'est un traitement automatique que je voudrais.

Merci à vous.
Olivier


Avez-vous fouillé ici : https://docs.postgresql.fr/

Bon courage

Dernière modification par sylvain poupard (Thu 11 April 2019 12:24)

Hors ligne

 

#5 Thu 11 April 2019 12:37

sylvain poupard
Participant assidu
Date d'inscription: 19 Mar 2009
Messages: 362

Re: QGIS 3.4.2: Requête SQL inversée

...une autre idée :
ajouter à votre sélection la condition

Code:

ST_Within(geometry A, geometry B) = f

Mais il doit y avoir mieux!

Hors ligne

 

#6 Thu 11 April 2019 14:46

Oliv38
Participant actif
Date d'inscription: 21 Dec 2011
Messages: 142

Re: QGIS 3.4.2: Requête SQL inversée

Merci mais pour l'instant je n'ai pas le résultat escompté :-(
Sur Mapinfo j'arrivais à le faire avec une sous-requête dans le WHERE, mais sur QGIS je ne trouve pas la bonne syntaxe.

Dernière modification par Oliv38 (Thu 11 April 2019 15:02)

Hors ligne

 

#7 Thu 11 April 2019 16:46

Oliv38
Participant actif
Date d'inscription: 21 Dec 2011
Messages: 142

Re: QGIS 3.4.2: Requête SQL inversée

Re-bonjour,
j'ai trouvé une solution en faisant le parallèle avec une requête MapInfo. Pour ceux que cela intéresserait voici donc une requête qui fonctionne :

SELECT *
FROM "table_A"
WHERE "table_A"."id" NOT IN (
    select "table_A"."id"
    from "table_A","table_B"
    where ST_WITHIN("table_A"."geometry","table_B"."geometry"))

J'obtiens en résultat les polygones de la table A qui ne sont pas contenus dans les polygones de la Table B.

Merci pour votre aide.
Cdlt,

Hors ligne

 

Pied de page des forums

Powered by FluxBB