1

我有 2 个名为 vhistory 和 week2 的表。vhistory 包括两个列 voternum 和 voterhistory。week2 包含列 age、address、voternum、voterhistory、status、gender、precinct、county 和 zip5。我需要使用表 vhistory 更新 week2 voterhistory,其中 week2 voternum = vhistory voternum。

例如:
在第 2 周内,有一个人的 voternum = 1234。在 vhistory 中有 3 条记录,其中 voternum = 1234。一个有一个 voterhistory = 2011,一个有一个 voterhistory = 2012,一个有一个 voterhistory = 2013。这意味着当更新 week2 的 3 条 vhistory 记录应导入 week2 表的 voterhistory 列,如下所示:2011、2012、2013。

这就是我到目前为止所拥有的。

UPDATE week2 SET voterhistory=SELECT CONCAT_WS(',',SELECT voterhistory FROM vhistory
WHERE week2.voternum = vhistory.voternum );
4

1 回答 1

0

我认为你正在寻找一个 update-join 语句:

UPDATE week2 
JOIN   (SELECT   voternum, 
                 GROUP_CONCAT(voterhistory ORDER BY voterhistory SEPARATOR ',') 
                   AS history
        FROM     vhistory
        GROUP BY voternum) h ON week2.voternum = h.voternum
SET    voterhistory = history
于 2014-04-25T18:00:16.240 回答