MySQL:如何将一个没有id的表中的列复制到另一个表中?

时间:2015-09-25 19:10:47

标签: mysql

可以复制列'哈希'从TABLE2到列' hash'在TABLE1?

谢谢你的帮助! 亲切的问候, 保罗

TABLE 1
+----+--------+----------+
| id | name   | hash     |
+----+--------+----------+
| 21 | John   |          |
| 22 | Ann    |          |
| 23 | Peter  |          |
+----+--------+----------+

TABLE 2
+----------+
| hash     |
+----------+
| vfrtycfg |
| gtytghjg |
+----------+

我需要得到这个结果:

+----+--------+----------+
| id | name   | hash     |
+----+--------+----------+
| 21 | John   | vfrtycfg |
| 22 | Ann    | gtytghjg |
| 23 | Peter  |          |
+----+--------+----------+

1 个答案:

答案 0 :(得分:0)

UPDATE table1 AS t1
JOIN (SELECT @rownum AS rownum, hash, @rownum := @rownum + 1
      FROM table2
      CROSS JOIN (SELECT @rownum := MIN(id) FROM table1) AS var) AS t2
ON t1.id = t2.rownum
SET t1.hash = t2.hash

DEMO

子查询向rownum添加table2列,其中包含从table1中的最小ID开始的顺序ID。