#1 Mon 06 January 2020 11:39
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 203
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: 1566
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 ![]()
Nicolas
Hors ligne
#3 Mon 06 January 2020 13:34
- neskuik01
- Participant assidu
- Date d'inscription: 16 Feb 2015
- Messages: 203
Re: Jointure spatiale id table 2 dans table 1
Clair net et efficace
. Merci
Hors ligne

