1 votos

Rellenar tabla a partir de tabla Spatialite

Estoy intentando rellenar una columna de una tabla desde otra tabla utilizando Spatialite. Mi consulta no rellena la columna y no consigo identificar el problema. He modelado la consulta del siguiente post: http://www.surfaces.co.il/wp-content/uploads/2012/05/SL_update3.png

Lo que me gustaría conseguir es tener los valores correspondientes de lu_grid.gridid para rellenar lu_geophotos.gridid donde lu_geophotos se cruza con lu_grid. (Una columna en una capa de puntos debe obtener los valores de un polígono donde los puntos se cruzan con el polígono)

Este es mi código:

UPDATE lu_geophotos SET gridid = (SELECT GRIDID
FROM lu_grid AS s
 WHERE ST_WITHIN (s.Geometry, lu_geophotos.Geometry)
 AND s.ROWID IN (SELECT ROWID
  FROM SpatialIndex
  WHERE f_table_name = 'lu_grid' AND search_frame = lu_geophotos.Geometry)
);

enter image description here

1voto

Dave Haynes Puntos 999

He encontrado el problema relacionado con la consulta. He eliminado todo lo que había después de ST_Within y he reordenado las capas (tenía la cuadrícula primero y los puntos después, y deberían estar al revés). Ver el código de abajo:

ACTUALIZAR lu_geophotos

SET gridid = (SELECT GRIDID FROM lu_grid

WHERE ST_Within(lu_geophotos.Geometry, lu_grid.Geometry))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X