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 06 January 2020 11:39

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 199

Jointure spatiale id table 2 dans table 1

Bonjour,

je cherche à récupérer les identifiants de point qui se situe sur le noeud initial de mes segments, j'ai fais un test :

Code:

UPDATE 
tablesegment
SET
idnini= pt.idnoeud
FROM
tablepoint pt
INNER JOIN 
tablesegment ligne ON ST_equals(pt.geom,ST_StartPoint(ligne.geom))
WHERE ligne.id='419411';

La requête s’exécute mais idnini reste vide, n'ayant jamais travaillé avec des jointures spatiales je suis pas certain que la syntaxe soit correcte.

Dernière modification par neskuik01 (Mon 06 January 2020 11:47)

Hors ligne

 

#2 Mon 06 January 2020 12:42

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1554

Re: Jointure spatiale id table 2 dans table 1

Bonjour,

Plutot:

Code:

UPDATE tablesegment t SET idnini= pt.idnoeud
FROM tablepoint pt
where ST_dwithin(pt.geom,ST_StartPoint(t.geom), 0.001)
and t.id='419411';

st_dwithin vous permet de prendre en compte une certaine précision (ici 0.001, a ajuster). St_equals est surement un peu "violent" pour trouver des points.

Je vous conseille de tester la requete en select avant de faire un update sur une table. Plus sûr wink

Nicolas

Hors ligne

 

#3 Mon 06 January 2020 13:34

neskuik01
Participant assidu
Date d'inscription: 16 Feb 2015
Messages: 199

Re: Jointure spatiale id table 2 dans table 1

Clair net et efficace wink. Merci

Hors ligne

 

Pied de page des forums

Powered by FluxBB