SQL:从另一个表更新表格

4

I have two tables (with sample data):

tblZone

[ZoneNo]  [Zone]

-----1------Zone1
-----2------Zone2
-----3------Zone3

tblPointsClient

[PolygonID] [Zone Name]

-----0------------Zone1
-----0------------Zone1
-----0------------Zone1
-----0------------Zone2
-----0------------Zone2
-----0------------Zone2
-----0------------Zone3
-----0------------Zone3
-----0------------Zone3

基本上,使用MySQL,我正在尝试通过tblZone中的ZoneNo更新tblPointsClient中的PolygonID(如果这有意义)。
因此,当我运行此更新时,它应该将PolygonID更改为:
[PolygonID] [Zone Name]

-----1------------Zone1
-----1------------Zone1
-----1------------Zone1
-----2------------Zone2
-----2------------Zone2
-----2------------Zone2
-----3------------Zone3
-----3------------Zone3
-----3------------Zone3

我尝试过以下操作:
UPDATE tblPointsClient 
SET tblPointsClient.PolygonID = (
   SELECT ZoneNo FROM tblZones WHERE tblPointsClient.ZoneNo = tblZones.Zone
                                )

但是这使得所有的多边形ID都变成了0

如果有人能帮忙,那将不胜感激!:)

2个回答

3
UPDATE  tblPointsClient a
        INNER JOIN tblZone b
            ON a.`Zone Name` = b.Zone
SET     a.PolygonID = b.ZoneNo

为了提高性能,在 tblPointsClient 表的 Zone Name 列和 tblZone 表的 Zone 列上添加 INDEXUPDATE 1:

2
今日免费次数已满, 请开通会员/明日再来
UPDATE tblPointsClient 
SET PolygonID = (SELECT TOP 1 ZoneNo FROM tblZone WHERE Zone = [Zone Name])
WHERE PolygonID = 0

我已经编写了代码来更新仅PolygonID = 0的行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接