Sou iniciante no PostgreSQL e tenho duas tabelas A e B, ambas com várias colunas, incluindo uma coluna de ponto (geom):
TableA inclui um determinado 'ID', geom, etc , TableB é um "DB" de locais com uma coluna 'name', geom, etc...
Precisa encontrar para cada TableA.id qual é o 'nome' (colunas de linha) e a distância do local mais próximo na TabelaB.
já consegui calcular a distância entre todos os pontos da TabelaA e da TabelaB com:
ST_DistanceSpheroid(pointA,pointB,[SPHEROID])
Mas o melhor que se pode construir até agora, é uma consulta select onde fornece para cada uma TAbleA.ID
todas as distâncias e respectivos nomes da TabelaB - não encontra o mínimo para cada ID apenas.
Embora necessário ter as novas colunas calculadas (distância e nome) adicionadas à Tabela A.
Ainda não está claro para mim como trabalhar com saída de dados ao usar "selecionar" versus uma saída de dados de tabela real. ou uso de visualizações.
Esse é um clássico do vizinho mais próximo . A solução básica:
Certifique-se de ter um índice GiST espacial em
tableB(geom)
:Relacionado:
Leitura recomendada:
<->
Sobre a
LATERAL
adesão: