我有两张桌子:
--Table a--
uid, name
1, Fred Jones
2, Mary Smith
3, Chip Green
etc.
--Table b--
uid, name, thing, back_ref
1, Fred Jones, one thing, 1
2, Fred Jones, another thing, 1
3, Mary Smith, a thing, 2
4, "Chip" Green, one thing, NULL
5, "Chip" Green, another thing, NULL
6, "Chip" Green, a third thing, NULL
因此,对于表a中的每个人,表b中有(可能)多行。
我最近添加了back_ref列,并希望匹配名称以创建后引用。我已经运行了一个更新查询,该查询使用子查询来匹配名称上的行并填写" back_ref"表a中的字段来自表a的表。当然,因为"芯片"绿色的名字在a和b之间略有不同,这对于他的行没有发生(在我到达之前数据的加载方式存在问题)。我写了一个小函数,我可以使用它强制连接只有几行有这个问题(通过忽略双引号等),如下所示:
WHERE CleanUpName(a.name) = CleanUpName(b.name) and b.back_ref is NULL
我有一个更新语句来填写back_ref,但我想编写一个更新语句,它将表b中任何相关行的名称复制到表格的名称字段中以进行更正(只是在比较失败的情况下。)
有办法做到这一点吗?