alteração de dados com base em dados de 2 tabelas via postgresql

Olá,

estou modelando um banco de dados de CEP.

Ja estou com todos os dados falta agora o bendito código de municipio do ibge

consegui uma tabelinha com o código IBGE .

No entanto eu teria que alterar os registos no campo “CIDADE” para o código da cidade que ja possuo na minha tabela “CIDADES”

essa é a estrutura das duas tabelas

TABELA CIDADE
campos
cod_cidade  |   cod_estado  |  cidade   |

Ex de registro:   
1    |   1     |   Porto Alegre  |


TABELA IBGE
cod_ibge  |  cod_estado   |  cidade   |  ibge   |

ex de registro : 
1   |   1   |   Porto Alegre   |   220000 |



eu entendo muito pouco de sql.

Queria saber se tem alguma maneira de fazer um script via sql que…

verifica o código do estado da cidade é igual ao da tabela IBGE E a cidade for o mesmo nome, alterar o registro DA TABELA ibge tirando o nome da cidade para o código da tabela cidade.

com isso o registro na tabela IBGE ficaria assim


1   |   1   |   1   |   220000 |

sao mais de 5mil registro fazer a mao vai ser complicado

se compliquei me perguntem q eu tento exemplificar melhor :stuck_out_tongue:

agradeço a atenção!

Uma forma possível é essa

update ibge i set i.cidade = (select c.cod_cidade from cidade c where c.cod_estado = i.cod_estado and c.cod_cidade = i.cod_ibge and c.cidade = i.cidade)

ADEMILTON

obrigado pela resposta

tive q modificar um pouco o código pq dava erro por nao encontrar a coluna “i”

ficou assim

no entando ele trouxe os resultados em branco :frowning:

UPDATE não tem alias.

Basta tirar os “i”: