根据另一个表中的相关列更新记录

时间:2013-10-09 21:55:31

标签: sql postgresql

我有一个带有列的表 - 比如article_id - 对应于另一个表的主键。见下文。

我想用Levenshtein距离填充列'lev',计算如下:

LEVENSHTEIN(table1.string, table2.title)

... table1的article_id对应于table2的主键。

我正在使用Postgres,此功能是fuzzystrmatch模块的一部分。


表格的相关部分如下所示:

table1
id    article_id   string   lev
1     134          'ace'
2     227          'bdg'
3     425          'hkl'

table2
id    title
134   'Some title abc'
227   'Some title def'
425   'Some title ghi'

如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

UPDATE table1 as t1 SET lev=LEVENSHTEIN(t1.string, t2.title)
FROM table2 as t2
WHERE t1.article_id = t2.id

有用的参考:

答案 1 :(得分:2)

不知道你引用的库模块的任何信息,假设函数存在,这应该有效:

UPDATE table1 AS t1 
SET lev = LEVENSHTEIN(t1.string,t2.title)
FROM table2 as t2
WHERE t1.articleid = t2.id