ANTON KADACH

Generation

text to sql syntaxTue, 17 Jan 2023

Geo_objects(id, level) geo_objects_attributes(id, name) geo_polygons(geo_id, simple_geometry) product_region(longitude, latitude, fias_id) запрос, который находит по координатам долготе и широте через функции ST_Intersects(gp.simple_geometry , ST_Transform(ST_SetSRID(ST_Point(p.longitude::numeric, p.latitude::numeric), 4326), 3857)) в таблице geo_polygons и выбирает из результата строку с максимальным level из таблицы geo_objects и обновляет поле "fias_id" значением из поля external_id таблицы geo_objects_attributes в таблице product_region

UPDATE product_region p SET fias_id = (SELECT ga.external_id FROM geo_objects go INNER JOIN geo_polygons gp ON go.id = gp.geo_id INNER JOIN geo_objects_attributes ga ON ga.id=go.id WHERE ST_Intersects(gp.simple_geometry , ST_Transform(ST_SetSRID(ST_Point(p.longitude::numeric, p.latitude::numeric), 4326), 3857)) order by go.level desc limit 1) WHERE fias_id IS NULL;

Questions about programming?Chat with your personal AI assistant