2012-05-03 16 views
1

私は2つのテーブルを持ち、それぞれにいくつかのカラムがあります。ただし、各テーブルには一意のデータも含まれています。 (同様のデータには行名が含まれます)。SQL Serverで2つのテーブルをマージする

私がする必要があるのは、テーブル2のデータをテーブル1の一致する行(名前列に一致)に置き換えることです。

これを行う方法はありますか?

私は名前が一致表1に行くために、テーブル2からのものが必要になります。

An ERD

+0

あなたがタックを言うとき、あなたは同じ行または異なる行にあることについて話していますか?また、データが一意であると言うと、データ型が異なりますか? – Taryn

+0

申し訳ありませんが、私が不明確であれば。行が一致し、テーブル2の列をテーブル1の一致する行に追加するだけです。 – Jack

答えて

2

次のクエリは、両方のテーブルの列を含む一致するすべての行を返す必要があります。 (1つまたは2つのテーブルにのみ存在する)一意の行はすべて除外されることに注意してください。

SELECT 
    one.matchingColum, 
    one.oddColum, 
    two.evenColumn 
FROM one 
JOIN two on one.matchingColumn = two.matchingColumn 
0

データ型が同じであれば、あなたが組合に

SELECT * 
FROM table1 
UNION 
SELECT * 
FROM table2 

を行うことができますデータ型が同じではなく、あなたがジョインできるフィールドがある場合は、JOINを実行することができます。

SELECT * 
FROM table1 t1 
LEFT JOIN table2 t2 
    ON t1.id = t2.id 
関連する問題