我花了很多时间在网上试图寻找答案但没有成功,所以我决定发布以下内容。 我有以下表格:
TABLE_1
+------------+---------------+
| child_id | mother_id |
+------------+---------------+
| 1 | 4 |
| 2 | 3 |
| 3 | 2 |
| 4 | 1 |
+------------+---------------+
TABLE_2
+------------+---------------+
| child_id | mother_id |
+------------+---------------+
| 1 | 0 |
| 2 | 0 |
| 3 | 0 |
| 4 | 0 |
+------------+---------------+
我想使用位于表1中的mother_id的值更新表2中的mother_id的值。 当然,上面的例子可以手动解决:
UPDATE table2 SET mother_id = 1 where child_id = 4;
UPDATE table2 SET mother_id = 2 where child_id = 3;
UPDATE table2 SET mother_id = 3 where child_id = 2;
UPDATE table2 SET mother_id = 4 where child_id = 1;
但是,让我想象一下,有数千行需要更新。有没有办法使用与更新混合的选择连接查询(在child_id上)以便只有几行代码?
谢谢。
答案 0 :(得分:2)
UPDATE
table_2 AS t2
INNER JOIN table_1 AS t1
ON t2.child_id = t1.child_id
SET t2.mother_id = t1.mother_id;
您需要根据匹配的child_id
加入这两个表,然后将mother_id
的值从table_1
设置为table_2
的值。
这是demo的
答案 1 :(得分:2)
通过内部联接有效地完成
update table_2
inner join table_1
on table_2.child_id = table_1.child_id
set table_2.mother_id = table_1.mother_id;