通过从两个表连接来更新所有字段值

时间:2012-11-20 11:49:45

标签: mysql sql

我有两个MySQL表:

  Table items            Table buffer
---------------         -------------
id     keywords         id      value
1      val1             1       val2
2      val1             2       val2
3      val1             3       val2

关键字和值都是VARCHAR(250)。现在,我想更新表格 项目 中的所有关键字:

   Table items
-----------------
id     keywords
1      val1, val2
2      val1, val2
3      val1, val2

我尝试用CONCAT实现这一点,但显然我做错了。你能帮我吗?

2 个答案:

答案 0 :(得分:2)

您需要UPDATE JOIN,如此:

UPDATE items i
INNER JOIN buffer b ON i.id = b.id
SET i.keywords = CONCAT(i.keywords, ', ', b.value);

SQL Fiddle Demo

答案 1 :(得分:1)

你也可以这样做:

UPDATE items, buffer 
SET items.keywords = CONCAT(items.keywords, buffer.value) 
where items.id = buffer.id;