I have a database with sites and counties. Every site is located in one county. In the sites table, the county is already mentioned but I want to replace it with the ID, which in is the other table.
My update code is as follows:
UPDATE sites
SET cgid = c.gid
FROM (select c.gid as a from counties c
INNER JOIN sites s
ON c.name = s.county) p;
The table sites is updated, although every value in the cgid column is the same (the ID of the first county). What can I do to get the right values?
The target table of an update statement should never be repeated in the from clause
So I think you want this:
UPDATE sites s
SET cgid = c.gid
FROM counties c
where c.name = s.county;
This assumes that counties.name and sites.county are both unique.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With