我有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 );
答案 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