나는 오늘 SpatiaLite를 가지고 놀기 시작했고 이미 문제에 걸려 넘어졌습니다.
tableOne에 저장된 각 포인트 위치에 대해 tableTwo에서 가장 가까운 (선형 거리) 포인트를 선택하고 싶습니다.
지금까지 VIEW를 사용하는 서투른 솔루션을 생각해 냈습니다.
CREATE VIEW testview AS
SELECT
A.id ,
B.myValue,
Distance(A.Geometry, B.Geometry) AS distance
FROM tableOne AS A, tableTwo AS B
WHERE distance < 10000
ORDER BY A.Id, distance;
그리고:
SELECT * FROM testview
WHERE distance = (SELECT MIN(distance) FROM testview AS t WHERE t.id = testview.id)
일을하는 것 같습니다.
두 가지 질문 :
VIEW를 만들지 않고 이러한 쿼리를 수행하는 방법이 있습니까?
성능 향상을 위해이 쿼리를 최적화하는 다른 방법이 있습니까? 실제 시나리오에서 tableOne은 수백-커플 수천 개의 레코드와 tableTwo-130 만 개의 레코드를 갖게됩니다.