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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Thu 11 April 2019 10:58

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

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: 132

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: 132

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: 132

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