2016-06-13 3 views
1

У меня есть две таблицы.Вставьте значения из одной таблицы в другую, в которой тип данных тот же, но имя столбца отличается от

Обе таблицы имеют одинаковые столбцы, но столбцы называются по-разному.

первая таблица имеет столбцы:

|ID_pk|Name 

и имеет только уникальный [ID] (один-к-одному)

вторая таблица имеет столбцы:

|SerialNumber|FullLegalName|PassportNumber_fk| 

и имеет одно- to-many между [SerialNumber] и [PassportNumber]

[ID] и [SerialNumber] столбцы делают не имеют соответствующих значений.

Мне нужно вставить все [ID] и [Name] значения во вторую таблицу в [SerialNumber] и [FullLegalName] с соответствующими [PassportNumber (s)].

ответ

1

попробовать что-то вроде этого,

update tbl2 
set tbl2.SerialNumber= tbl1.id, 
    tbl2.FullLegalName = tbl1.Name 

from tbl1, tbl2 
where tbl2.PassportNumber = 'something'; 
0

Вы можете сделать, как это.

но свойство столбца первой и второй таблицы должно быть равно.

update SecondTable 
set SerialNumber = ft.ID, 
    FullLegalName = ft.Name 
from FirstTable as ft 
    inner join SecondTable as st on ft.Id = st.PassportNumber_fk_ColumneName 
    inner join ThirdTable as tt on st.PassportNumber_fk_ColumneName = tt.PassportNumber_pk_ColumneName 
+0

Проблема заключается в том, что у меня нет никаких значений соответствия в первой и второй таблице, так что я "не уверен, что это соединение предполагается сделать. Может быть, я лучше использовать, где не существует? – enigma6205

+0

вопрос может быть закрыт.Я разработал другое решение CTE.Но также с трудностями с этим.Я отправлю ссылку на новый вопрос. http://stackoverflow.com/questions/37801035/update-with-cte-does-not- признает столбцы-имена-в-Set-п – enigma6205