@fire64
Разработчик Unity

Как объединить два запроса к базе?

Помогите пожалуйста обьиднить два запроса в 1

Запросы одинаковые, к двум таблицам, разница лишь в том, что а одной таблице way_id, а в другом area_id


Запрос
Запрос 1:

//Lines
$query = "SELECT jsonb_build_object
(
'type', 'Feature',
'id', way_id,
'geometry', ST_AsGeoJSON( ST_Transform(geom,4326) )::jsonb,
'properties', tags
) FROM lines WHERE geom && ST_Transform( ST_MakeEnvelope( $lon_deg_min, $lat_deg_min , $lon_deg_max , $lat_deg_max, 4326 ), 3857 ) AND

(
tags ?& array['natural', 'water'] OR
tags ?& array['natural', 'wetland'] OR
tags ?| array['wetland'] OR
tags ?| array['waterway'] OR
tags ?| array['water']

)";

Запрос 2

//Polygons
$query = "SELECT jsonb_build_object
(
'type', 'Feature',
'id', area_id,
'geometry', ST_AsGeoJSON( ST_Transform(geom,4326) )::jsonb,
'properties', tags
) FROM polygons WHERE geom && ST_Transform( ST_MakeEnvelope( $lon_deg_min, $lat_deg_min , $lon_deg_max , $lat_deg_max, 4326 ), 3857 ) AND

(
tags ?& array['natural', 'water'] OR
tags ?& array['natural', 'wetland'] OR
tags ?| array['wetland'] OR
tags ?| array['waterway'] OR
tags ?| array['water']

)";

По факту сейчас загружаю их данные поочереди, но зачем дублировать код.
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
firedragon
@firedragon
Senior .NET developer
Используйте Union
https://www.w3schools.com/sql/sql_union.asp
правда придется править запрос что бы названия столбцов совпадали
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы