2016-10-26 1 views
0

imは2つの表を比較しています。 表1に列1-5を示します。 表2に列1-6を示します。 TABLE1ここ表1から表2に列をコピーして、内容をコピーします。

+1

参照しているデータベースエンジンについてより具体的に説明する必要があります。この情報はタグで提供することができます。使用したタグはあいまいです。明確にするためにテーブル図を添付することも良い考えです。 – Jacob

+0

Im Ms sql 2014およびhat 5型のvarchar型の列を使用します。 –

+0

私はsqlタグの説明を引用します: "[..]質問には、コード例、テーブル構造、サンプルデータ[..]を含める必要があります。誰かがあなたに正確な答えを与えることははるかに簡単です。 – Jacob

答えて

0

フルコンテンツと(表2から)6列を追加する方法

はそれが達成することができる方法の例である: - 2つのテーブル

DECLARE @FirstTable TABLE (
    FirstFirst VARCHAR(5), 
    FirstSecond VARCHAR(5), 
    FirstThird VARCHAR(5), 
    FirstFourth VARCHAR(5), 
    FirstFifth VARCHAR(5)) 
INSERT INTO @FirstTable 
VALUES 
    ('111', '121', '131', '141', '151'), 
    ('112', '122', '132', '142', '152'), 
    ('113', '123', '133', '143', '153') 

DECLARE @SecondTable TABLE (
    SecondFirst VARCHAR(5), 
    SecondSecond VARCHAR(5), 
    SecondThird VARCHAR(5), 
    SecondFourth VARCHAR(5), 
    SecondFifth VARCHAR(5), 
    SecondSixth VARCHAR(5)) 
INSERT INTO @SecondTable 
VALUES 
    ('111', '121', '131', '141', '151', '161'), 
    ('112', '122', '132', '142', '152', '162'), 
    ('113', '123', '133', '143', '153', '163') 

--As a join 
SELECT ft.*, st.SecondSixth FROM @FirstTable AS ft 
LEFT JOIN @SecondTable AS st ON 
    ft.FirstFirst = st.SecondFirst AND 
    ft.FirstSecond = st.SecondSecond AND 
    ft.FirstThird = st.SecondThird AND 
    ft.FirstFourth = st.SecondFourth AND 
    ft.FirstFifth = st.SecondFifth 

--As outer apply 
SELECT ft.*, oa_secondTable.SecondSixth FROM @FirstTable AS ft 
OUTER APPLY (
    SELECT TOP 1 st.SecondSixth FROM @SecondTable AS st 
    WHERE 
     ft.FirstFirst = st.SecondFirst AND 
     ft.FirstSecond = st.SecondSecond AND 
     ft.FirstThird = st.SecondThird AND 
     ft.FirstFourth = st.SecondFourth AND 
     ft.FirstFifth = st.SecondFifth 
) AS oa_secondTable 

短い説明 - 最初の例は結合との比較です - 2番目の例はtheresと外部の適用との比較です

関連する問題