2013-09-25 3 views
0

Я искал довольно много, но не нашел решения для моей проблемы. Теперь я надеюсь, что кто-то может мне помочь.Обновление одной строки таблицы с информацией из нескольких строк в другой таблице

У меня есть две таблицы в базе данных MySQL, и обе таблицы имеют столбцы Имя и ArticleID

То, что я хотел бы сделать, это скопировать содержимое в колонке Name из таблицы 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

ответ

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

Это будет работать, но ArticleID является первичным ключом в таблице 2. – Melker

+0

Я полагаю, что для этого потребуется условие WHERE? – Melker

+0

попробуйте и дайте нам знать :) –

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 и это работало

Смежные вопросы