Gostaria de comparar duas tabelas, t1 e t2, e alterar o valor de um valor de linha de colunas em t1 com base na condição de uma coluna em t2.
t1:
encontrar | vul | custo_agregado |
---|---|---|
1 | 0,6 | 1400 |
2 | 0,5 | 1300 |
3 | 0,8 | 1200 |
t2:
encontrar | vul | custo_agregado |
---|---|---|
1 | 0,2 | 200 |
2 | 0,5 | 2000 |
3 | 0,8 | 450 |
resultado desejado de t1:
encontrar | vul | custo_agregado |
---|---|---|
1 | 1,0 | 1400 |
2 | 0,5 | 1300 |
3 | 1,0 | 1200 |
Eu usei esta consulta, mas ela faz as alterações erradas:
UPDATE t1
SET vul = 1.0
FROM t2
WHERE t1.agg_cost > t2.agg_cost;
& a junção interna me dá o nome da tabela t1 especificado mais de uma vez.
UPDATE t1
SET vul = 1
FROM t1
INNER JOIN t2 ON t1.fid = t2.fid
WHERE t1.agg_cost > t2.agg_cost;
Se eu acertar, você quer atualizar t1 se existir uma linha em t2 com o mesmo fid e um agg_cost maior