我有一个名为Address的表,其中包含来自两个来源的数千行,例如:X和Y。我想将Postcode的额外值(即源Y到源X的6个字符的邮政编码)复制到源X,然而,这并不是最好的方式,因为它有数千行,并且两个来源的StreetName不同,如果它是同一条街的话。下面是表格的样子。
来源 | 城市 | 街道名称 | >街道编号政编码||||||
---|---|---|---|---|---|---|---|---|
X | Pilar | >Luis Pasteur11 | 123123||||||
X | Pilar | >Luis Pasteurtd style="text-align:left;">XPilar | >Luis Pasteur3B789789 | |||||
Y | Pilar | Y | Pilar | Y | Pilar |
如果我正确读取了您的数据,更新自联接应该在这里工作:
UPDATE yourTable t1
INNER JOIN yourTable t2
ON t2.City = t1.City AND
t2.StreetNo = t1.StreetNo AND
INSTR(t2.Postcode, t1.Postcode) > 0
SET t1.Postcode = t2.Postcode
WHERE t1.Source = 'X' AND t2.Source = 'Y';