table1
a - b - c- d - e
1---b1---c1---d1---e1
2---b2---c2---d2---e2
3---b3---c3---d3---e3
4---b4---c4---d4---e4
5---b5---c5---d5---e5
表2
a----b----c----d----e
1---b2---c2---d2---e2
3---b3---c3---d3---e3
5---b5---c5---d5---e5
6---b6---c6---d6---e6
table1上的一些信息不包含在table2中 - 所以我需要将表2更新为table2的副本。我试过了
UPDATE table1 t1, table2 t2 SET t2.b = t1.b, t2.c = t1.c, t2.d = t1.d
但影响了0行 - 没有任何改变。我还能做什么?
答案 0 :(得分:3)
首先:您需要从table1中插入表2中未显示的记录:
INSERT INTO table2(a, b, c, d, e)
SELECT t1.*
FROM table1 AS t1
LEFT JOIN table2 AS t2 ON t1.a = t2.a
WHERE t2.a IS NULL;
然后UPDATE
匹配table1:
UPDATE table1 t1
INNER JOIN table2 t2 AS t1.a = t2.a
SET t2.b = t1.b,
t2.c = t1.c,
t2.d = t1.d,
t2.e = t2.e;
答案 1 :(得分:0)
如果table2只包含表1中的“行”,而不是创建另一个表,你可以创建第一个表的视图:
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition