У меня есть два стола

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

Как я могу это сделать? Спасибо

0
TrueBlue10 25 Апр 2014 в 16:49

4 ответа

Лучший ответ
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 ;

Вот ссылка на образец

1
Hrithu 25 Апр 2014 в 13:26

Попробуй это

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;

SQL FIDDLE

1
Ilesh Patel 25 Апр 2014 в 13:33

Используйте UPDATE с JOIN, как показано ниже

UPDATE table1 
INNER JOIN table2 ON table1.id=table2.id
SET table1.a=table2.a
0
Mudassir Hasan 25 Апр 2014 в 12:51

Надеюсь на эту помощь. Извините, потому что у меня не было возможности забежать

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
0
Hardy 25 Апр 2014 в 13:19