使用CONCAT_WS错误的UPDATE表

时间:2014-04-25 17:54:31

标签: mysql sql concat concat-ws

我有2个名为vhistory和week2的表。 vhistory包括两列voternum和voterhistory。第2周包含列年龄,地址,投票,选举历史,状态,性别,区域,县和zip5。我需要使用表格vhistory更新week2 voterhistory,其中week2 voternum = vhistory voternum。

例如:
在第2周内,有一个人的姓氏= 1234。 在vhistory内有3条记录,其中voternum = 1234。 一个人有一个选民历史= 2011年,一个人的选民历史= 2012年,一个人的选民历史= 2013年。 这意味着在更新第2周时,vhistory的3条记录应该导入到week2表的voterhistory列中,如下所示:2011,2012,2013。

这是我到目前为止所做的。

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

1 个答案:

答案 0 :(得分: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