我有两个mysql表,都有3列,第一个表第三列是空的,第二个表第三列有数据。
表1
---------|------------|---------|
codprc | numideent | Empty |
---------|------------|---------|
20000002 | 890300604 | |
20000002 | 800077226 | |
20000003 | 890300604 | |
20000003 | 79692317 | |
20000003 | 22802672 | |<-----
20000005 | 240284866 | |
20000005 | 20310518 | |
20000005 | 17189852 | |
20000005 | 17118956 | |
20000005 | 41496516 | |
20000005 | 20713128 | |
20000005 | 19142900 | |
表2
---------|------------|----------|
icodprc | inumideent | icodcpe |
---------|------------|----------|
20000003 | 22802672 | 3 |<------
20000003 | 79692317 | 3 |
20000003 | 890300604 | 4 |
20000003 | 890300604 | 4 |
20000005 | 17118956 | 4 |
20000005 | 17189852 | 4 |
20000005 | 19142900 | 4 |
20000005 | 20284866 | 4 |
20000005 | 20310518 | 4 |
20000005 | 20713128 | 3 |
20000005 | 41496516 | 4 |
20000007 | 890300604 | 4 |
20000008 | 890300604 | 4 |
20000009 | 41462678 | 4 |
20000009 | 860351432 | 3 |
20000010 | 890300604 | 4 |
我需要用第二个表的第 3 列填充第一个表的第 3 列,但前提是两个表的 fisrt 和 secod 列相等。
例如,第1行的tale2.icodprc和table2.inumideent的值等于第5行的table1.codprc table1.numideent,所以icodcpe的值必须填入第5行的空列。
我尝试了几种选择,但我想我遗漏了一些东西。
谢谢。
最佳答案
您可以使用多表 UPDATE
语法来连接表:
UPDATE Table1
JOIN Table2
ON Table2.icodprc = Table1.codprc
AND Table2.inumideent = Table1.numideent
SET Table1.Empty = Table2.icodcpe
查看sqlfiddle .
关于mysql - 如果两个表具有相同的值,则填充 mysql 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17790701/