2016-08-25 16 views
0

列名がtimeの表Aと、value1の表Bと、列名がtimeの表Bの場合は、value2です。これら2つのテーブルを1つのテーブルに結合するには、timevalue1value2のSQL Serverを使用しますか?共通の列に基づいて1つの表に2つの表を結合します

表A:時間、VALUE1

表B:時間、値2

出力:

あなたが必要なもの、時間、値1、値

+0

..... – scsimon

答えて

2

古典的ですJOIN

SELECT t1.time, t1.value1, t2.value2 
FROM Table1 t1 
LEFT JOIN Table2 t2 ON t1.time=t2.time 

PS!いくつかのデータベースでは、LEFT JOINLEFT OUTER JOINと呼ばれます。

+1

は、ANSI-92互換性のために、オプションのOUTER識別子を使用して、古い学校に行きました。投げ戻しの木曜日は完全な効果があります。 – scsimon

+0

時間が違うとどうなりますか?私は時間がない場合はnullを入れたいと思います。 – Mat

+0

@Mat 'table1'に一致する時刻がないのに' table2'で一致しない時刻があると、次の結果が得られます: 't1.time、t1.value、NULL' – user3378165

0

面白いアプローチは次のようになります: - JOINを使用

SELECT time, value1, '' as value2 
from A 

UNION ALL 

SELECT time, '' as value1, value2 
FROM B 
+0

面白い.. – scsimon

0
SELECT A.time, A.value1, A.value2 
FROM Table1 A 
INNER JOIN Table2 B ON A.time=B.time 
+0

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。 – Paritosh

関連する問題