我要两张桌子
table 1 table 2
id a b c id a
1 2 3 a 1 r
2 4 5 b 4 d
3 6 7 c 5 s
4 8 9 d
5 1 2 e
6 2 3 f
我希望table2覆盖表1。 以下是我想要的结果
我想创建一个视图表
table override
id a b c
1 r 3 a
2 4 5 b
3 6 7 c
4 d 9 d
5 s 2 e
6 2 3 f
我怎么能这样做? THX
答案 0 :(得分:1)
试试这个
UPDATE table1 t1 JOIN table2 ON t1.id = t2.id SET t1.a = t2.a
更改视图:
CREATE VIEW v AS SELECT t1.id,COALESCE(t2.a,t1.a),b,c FROM t1
LEFT JOIN t2 ON t1.id = t2.id;
答案 1 :(得分:1)
UPDATE table1
INNER JOIN table2 ON table1.id=table2.id
SET table1.a=table2.a
如果你想查看试试这个:
select t1.id,ifnull(t2.a,t1.a),t1.b from table_1 as t1 left join table_2 as t2 on t2.id=t1.id
创建视图
CREATE VIEW tbl_vw AS SELECT t1.id,COALESCE(t2.a,t1.a),b,c FROM table_1 as t1 left
JOIN table_2 as t2 ON t1.id = t2.id ;
答案 2 :(得分:0)
使用UPDATE和JOIN,如下所示
UPDATE table1
INNER JOIN table2 ON table1.id=table2.id
SET table1.a=table2.a
答案 3 :(得分:0)
希望这有帮助。抱歉,因为我没有机会参加
select case when t.d is null then t.a else t.d end, t.b, t.c
from
(
select t1.a a, t1.b b , t1.c c, t2.a d
from table1 t1 left join table2 t2 on t1.id=t2.id
) t