Leo*_*Sam 203 mysql sql sql-update
我有两张桌子,看起来都像
id name value
===================
1 Joe 22
2 Derk 30
Run Code Online (Sandbox Code Playgroud)
我需要的值复制value从tableA到tableB基于每个表检查名称.
这个UPDATE陈述的任何提示?
Raf*_*shi 383
除了这个答案,如果你需要动态地根据tableA.value更改tableB.value,你可以这样做:
UPDATE tableB
INNER JOIN tableA ON tableB.name = tableA.name
SET tableB.value = IF(tableA.value > 0, tableA.value, tableB.value)
WHERE tableA.name = 'Joe'
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 151
你需要加入这两个表:
例如,您希望将nametableA 的值复制到tableB它们具有相同位置的位置ID
UPDATE tableB t1
INNER JOIN tableA t2
ON t1.id = t2.id
SET t1.name = t2.name
WHERE t2.name = 'Joe'
Run Code Online (Sandbox Code Playgroud)
更新1
UPDATE tableB t1
INNER JOIN tableA t2
ON t1.id = t2.id
SET t1.name = t2.name
Run Code Online (Sandbox Code Playgroud)
更新2
UPDATE tableB t1
INNER JOIN tableA t2
ON t1.name = t2.name
SET t1.value = t2.value
Run Code Online (Sandbox Code Playgroud)
Sam*_*vic 84
第二种可能性是,
UPDATE TableB
SET TableB.value = (
SELECT TableA.value
FROM TableA
WHERE TableA.name = TableB.name
);
Run Code Online (Sandbox Code Playgroud)
UPDATE cities c,
city_langs cl
SET c.fakename = cl.name
WHERE c.id = cl.city_id
Run Code Online (Sandbox Code Playgroud)