2017-02-08 2 views
0

Я хочу, чтобы объединить две таблицы с одинаковыми именами столбцов и обновлять его, используя по ID (уникальный ключ)SQL таблицу соединения с таким же именем столбца

table structure

+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of -код-on-so-when-ask-a-question/285557 # 285557 –

+0

Что означает «ожидаемый»? Какой из них вы хотите обновить? – user489872

+0

@a_horse_with_no_name phpmyadmin localhost – MOJOJO

ответ

0

с вашего примера:

select * from Table1; 
+----+------+------+--------+ 
| ID | Name | age | Gender | 
+----+------+------+--------+ 
| 1 | Pars | 23 | M  | 
| 2 | Pepe | 24 | M  | 
| 3 | Pio | 25 | M  | 
| 4 | Pak | 26 | F  | 
+----+------+------+--------+ 

select * from Table2; 
+------+------+------+--------+ 
| ID | Name | age | Gender | 
+------+------+------+--------+ 
| 1 | Pars | 30 | M  | 
| 2 | Pepe | 31 | M  | 
| 3 | Pio | 32 | M  | 
+------+------+------+--------+ 

После запроса обновления:

Update Table1 join Table2 using(ID) set Table1.AGE=Table2.AGE; 

РЕЗУЛЬТАТ:

select * from Table1; 
+----+------+------+--------+ 
| ID | Name | age | Gender | 
+----+------+------+--------+ 
| 1 | Pars | 30 | M  | 
| 2 | Pepe | 31 | M  | 
| 3 | Pio | 32 | M  | 
| 4 | Pak | 26 | F  | 
+----+------+------+--------+ 
+0

ты сделал мой день братом! – MOJOJO

+0

Рад помочь !!! – Krishnakumar

+0

Если все в порядке, вы можете отметить это как ответ, чтобы мы могли закрыть тему. – Krishnakumar

0

Я думаю, что это может помочь вам ... ..

в запросе используется внутреннее соединение, чтобы присоединиться к table1 и таблица2

SELECT T1.name1,T2.name2 
FROM `table1` T1 
INNER JOIN `table2` T2 ON t2.name1=t1.PrimaryKey; 
+0

Мне нужно сначала создать таблицу с одним столбцом? – MOJOJO

0

Используется левое соединение, чтобы присоединиться к таблицам. Попробуйте этот код: -

select a.id , 
     coalesce(a.name,b.name) as name 
     ,coalesce(b.age,a.age)as age 
     ,coalesce(a.gender,a.gender)as gender 
from table1 as a 
left join Table2 as b 
on a.id=b.id 
+0

благодарю вас за ответ. – MOJOJO

+0

Что означают «a» и «b»? – MOJOJO

+0

псевдоним для таблицы – anjali

0

Попробуйте также:

update Table1 set Table1.age=Table2.age from table1 inner join table2 on Table1.id=Table2.id 
Смежные вопросы