表 A(訂單主檔)與表 B(客戶明細)需依 `id` 關聯,並過濾掉 B 中存在但 A 中不存在的資料,結果寫入新表 C。
-- 表 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
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;
INNER JOIN 保證只保留雙方都存在的 `id`(自動過濾 `id=2`)。CREATE TABLE ... SELECT 依查詢結果自動建立欄位型別與資料。CREATE TABLE jieguo2 ENGINE=InnoDB
SELECT t1.id, t1.user, t1.pwd, t1.pwd2, t2.info
FROM t1 INNER JOIN t2 ON t1.id = t2.id;
ALTER TABLE jieguo2 ADD PRIMARY KEY (id);
若目標表已存在,改用:
INSERT INTO target_tbl (id, user, pw, pw2, info)
SELECT t1.id, t1.user, t1.pwd, t1.pwd2, t2.info
FROM t1 INNER JOIN t2 ON t1.id = t2.id;