如何从另一个表更新MYSQL中的一个表?有额外的价值

时间:2012-12-09 18:28:34

标签: mysql sql database sql-update

我有两张相似的表。

Table word
column names: id, name, describe
1 bob Is a cat
2 Sam Not a giraffe
3 Gub Like a cat

Table temp
column names: id, name, describe
1 bob Is a cat
2 Sam Not a giraffe
3 Gub Like a cat
4 Col The other one

我目前正在使用它来更新表temp中的表字,但是没有添加第4个值。我该怎么做?

UPDATE temp p, word pp
SET pp.name= p.name, pp.describe = p.describe
WHERE pp.id = p.id;

3 个答案:

答案 0 :(得分:4)

试试这个:: INSERT ON DUPLICATE KEY UPDATE

INSERT INTO word(id, name, describe) SELECT id, name, describe FROM temp 
ON DUPLICATE KEY UPDATE SET word.name = temp.name, word.describe = temp.describe;

答案 1 :(得分:1)

如果我理解正确,您希望将值从一个表复制到另一个表,保持相同的id。在这种情况下,你不能把条件WHERE pp.id = p.id.这样,它只会复制“word”表中已存在的id行,跳过任何唯一的行。您可以使用“INSERT INTO ... ON DUPLICATE KEY UPDATE”来获取它。 http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

答案 2 :(得分:0)

最后一个需要一个insert语句,因为它还不存在

INSERT INTO word pp SELECT * FROM temp left join on on temp.id = word.id where temp.id IS NULL