Bugün SpatiaLite ile oynamaya başladım ve zaten bir sorunla karşılaştım.
TableOne içinde saklanan her nokta konumu için tableTwo öğesinden bir, en yakın (doğrusal mesafe) noktayı seçmek istiyorum.
Şimdiye kadar VIEW kullanan beceriksiz bir çözüm buldum:
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;
Ve sonra:
SELECT * FROM testview
WHERE distance = (SELECT MIN(distance) FROM testview AS t WHERE t.id = testview.id)
işi yapıyor gibi görünüyor.
İki soru:
GÖRÜNÜM oluşturmadan böyle bir sorgu yapmanın bir yolu var mı?
Bu sorguyu daha iyi performans için optimize etmenin başka bir yolu var mı? Gerçek bir dünya senaryosunda tableOne'da yüzlerce çift binlerce kayıt ve tableTwo - 1.3 milyon olacak.