簡體   English   中英

如何從另一個表更新MYSQL中的一個表? 具有額外的價值

[英]How to update one table in MYSQL from another table? with extra values

我有兩個相似的表。

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;

試試這個::插入重復的密鑰更新

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;

如果我理解正確,則希望將值從一個表復制到另一個表,並保持相同的id 在這種情況下,您不能將條件WHERE pp.id =p.id。 這樣,它將僅復制“單詞”表中已存在的具有id行,並跳過所有唯一行。 您可以使用“ INSERT INTO ... ON DUPLICATE KEY UPDATE”來解決它。 http://dev.mysql.com/doc/refman/5.1/en/insert-on-duplicate.html

最后一個需要插入語句,因為它尚不存在

將單詞INSERT INTO到pp SELECT中*從temp左連接temp.id = word.id的單詞,其中temp.id為NULL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM