使用来自不同表中多行的信息更新一个表行

时间:2013-09-25 12:23:56

标签: mysql

我搜索了很多,但还没找到解决问题的方法。现在我希望有人可以帮助我。

我在MySQL数据库中有两个表,两个表都有名称 ArticleID

我想要做的是将表格名称从表1复制到表2,其中ArticleID匹配。所有名称都应在表2中的名称列中用逗号分隔。

在表1中,例如列名称中有3行具有相同的内容,但每行具有唯一的ArticleID。在其他3行中有不同的名称,但ArticleID与前3行相同。

表1

Name 1 - 1
Name 2 - 2
Name 3 - 3
Name 4 - 1
Name 5 - 2
Name 6 - 3

表2

1 - Name 1, Name 4
2 - Name 2, Name 5
3 - Name 3, Name 6

这对我来说通常不会有问题,但是现在有多个行具有相同的ArticleID,我似乎无法通过我自己解决这个问题。

我希望你明白我想要的东西: - )

Melker

2 个答案:

答案 0 :(得分:1)

INSERT INTO TABLE2(id, names)
SELECT ArticleID, GROUP_CONCAT(Name) 
FROM TABLE1 GROUP BY ArticleID;

答案 1 :(得分:0)

UPDATE 
    TABLE2 
JOIN (SELECT ArticleID, GROUP_CONCAT(Name) AS Name FROM TABLE1 GROUP BY ArticleID) TABLE1
ON TABLE2.ArticleID = TABLE1.ArticleID
SET TABLE2.Name = TABLE1.Name
WHERE TABLE2.ArticleID = TABLE1.ArticleID

我实际上必须使用UPDATE,这有效