MySQL把一張表的一個欄位的內容放到另一張表
阿新 • • 發佈:2020-12-25
技術標籤:MySQL
0.碼仙勵志
強者征服今日,懦夫哀嘆昨日,懶漢坐等明天。
1.準備資料
CREATE TABLE `table1` (
`id` int(11) NOT NULL,
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;
INSERT INTO `table1` VALUES (1, 'a1');
INSERT INTO `table1` VALUES (2, 'a2');
INSERT INTO `table1` VALUES (3, 'a3');
INSERT INTO `table1` VALUES (4, 'a4');
INSERT INTO `table1` VALUES (5, 'a5');
CREATE TABLE `table2` (
`id` int(11) NOT NULL,
`name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Compact;
INSERT INTO `table2` VALUES (1, NULL);
INSERT INTO `table2` VALUES (2, NULL);
INSERT INTO `table2` VALUES (3, NULL);
INSERT INTO `table2` VALUES (4, NULL);
INSERT INTO `table2` VALUES (5, NULL);
2.把table1中的那麼更新到table2
# 方法一
update table2 set table2.name = (select table1.name from table1 where table1.id = table2.id);
# 方法二
UPDATE table2 INNER JOIN table1 ON table2.id = table1.id SET table2.name = table1.name;
# 方法三
UPDATE table2,table1 SET table2.name=table1.name WHERE table2.id = table1.id;