2016-06-13 5 views
1

2つのテーブルがあります。データ型が同じだが列の名前が異なる別のテーブルに値を挿入する

どちらのテーブルにも同じ列がありますが、列の名前はそれぞれ異なります。

最初のテーブルは列た:

|ID_pk|Name 

のみユニーク[ID]を有する(一対一)

第二テーブルの列があります

|SerialNumber|FullLegalName|PassportNumber_fk| 

およびワン有します[SerialNumber]と[PassportNumber]の多対多の関係

[ID]列と[SerialNumber]列は、一致する値がありません。

2番目のテーブルの[ID]と[名前]の値をそれぞれ[SerialNumber]と[FullLegalName]に[PassportNumber(s)]と一緒に挿入する必要があります。

答えて

1

は、あなたがこれらのように行うことができます

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

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

、このような何かを試してみてください。

ただし、第1テーブルと第2テーブルの列プロパティは同じでなければなりません。

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

問題は、私は、第1および第2のテーブル内のすべての一致する値を持っていないということですので、私は「やることになっているもの、これは参加分からない。いないが存在する場所、私が良く使うことができますか? – enigma6205

+0

質問私は別のソリューションのCTEを開発しましたが、それも難しかったです。新しい質問へのリンクを投稿します。http://stackoverflow.com/questions/37801035/update-with-cte-does-not-列挙されている節の名前を認識する – enigma6205

関連する問題