I have two tables facilities
and admin
.
For facilities
I have columns id, name, address, district
. For admin
I have columns shape_area, district, geom
.
I want to combine the geom
column from admin
with facilities
according to the district
column, so the facilities
table can have id, name, address, district, geom
.
How can I have this facilities
table in the database? (not just showing in the result)
CodePudding user response:
You can use SQL join condition to connect two tables.
select id, name, address, district, geom from facilities join admin on facilities.district = admin.geom
CodePudding user response:
alter table facilities
add column geom geometry,
add column shape_area numeric generated always as (st_area(geom)) stored;
with joined_facilities_and_admin as
( select f.id,
f.name,
f.address,
f.district,
a.district,
a.geom
from facilities f
join admin a using (district))
update facilities f
set geom=fa.geom
from joined_facilities_and_admin fa
where f.id=fa.id;
DB<>fiddle (type geometry
swapped out for text
since PostGIS is absent)