我的查询有问题。
我有一张名为'Postleitzahlen'的德国Zipcodes表。 公司还有另一张名为'Firmen'的表格
结构是这样的:
Firmen
------
ID
City
State
ZipCode
Postleitzahlen
--------------
ZipCode
State
现在我想要, Firmen 的所有空('或NULL)状态字段都使用 Postleitzahlen
的相关对象进行更新这是我的实际查询:
UPDATE
Firmen
SET
Firmen.State = Postleitzahlen.State
FROM
Postleitzahlen
INNER JOIN
Firmen ON Postleitzahlen.ZipCode = Firmen.ZipCode
WHERE
(
Firmen.State = ''
OR Firmen.State IS NULL )
我收到xx受影响的行的响应,但事实上,没有任何更新。
有人可以帮助我吗?
提前致谢。
答案 0 :(得分:4)
看起来应该可以正常工作。我要做的是运行以下查询:
SELECT Firmen.State,Postleitzahlen.State
FROM
Postleitzahlen
INNER JOIN
Firmen ON Postleitzahlen.ZipCode = Firmen.ZipCode
WHERE
(
Firmen.State = ''
OR Firmen.State IS NULL )
看看能得到什么。如果您在两列中获得带有值的结果,那么您可能会遇到其他问题。但是,我猜测其中一列是null或为空,因为您正在更新行但没有任何更改。
然后你的查询没有任何问题。我想可能是你的更新。尝试使表格成为别名,如下所示:
UPDATE
F
SET
F.State = Postleitzahlen.State
FROM
Postleitzahlen
INNER JOIN
Firmen F ON Postleitzahlen.ZipCode = F.ZipCode
WHERE
(
F.State = ''
OR F.State IS NULL )
答案 1 :(得分:1)
UPDATE
Firmen f
SET
f.State = (SELECT p.State FROM Postleitzahlen p WHERE p.ZipCode = f.ZipCode)
WHERE
(
f.State = ''
OR f.State IS NULL )