需將兩張表關聯查詢的結果直接建立為新表。本文示範 CREATE TABLE ... SELECT ... INNER JOIN 一條指令完成「關聯查詢 + 建表 + 資料寫入」。
表 A
+----+------+------+
| id | user | info |
+----+------+------+
| 1 | u1 | 991 |
| 3 | u3 | 113 |
+----+------+------+
表 B
+----+------+----+-----+
| id | user | pw | pw2 |
+----+------+----+-----+
| 1 | u1 | p1 | p12 |
| 2 | u2 | p2 | p22 |
| 3 | u3 | p3 | p32 |
+----+------+----+-----+
期望結果(新表)
+----+------+----+-----+------+
| id | user | pw | pw2 | info |
+----+------+----+-----+------+
| 1 | u1 | p1 | p12 | 991 |
| 3 | u3 | p3 | p32 | 113 |
+----+------+----+-----+------+
邏輯:INNER JOIN 於 id,僅保留兩表都有的 id(排除 B 表 id=2)。
CREATE TABLE `jieguo2`
SELECT t1.id, t1.user, t1.pwd, t1.pwd2, t2.user2, t2.info
FROM t1
INNER JOIN t2 ON t1.id = t2.id;
CREATE TABLE new_table SELECT ... 同時建立結構與寫入資料。SELECT 列表推導。INNER JOIN 實現「交集」邏輯,自動過濾單邊獨有資料。LEFT JOIN。CREATE TABLE `jieguo2` ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
SELECT t1.id, t1.user, t1.pwd, t1.pwd2, t2.user2, t2.info
FROM t1
INNER JOIN t2 ON t1.id = t2.id;