2017-03-13 35 views
-2

私はこのような2台持っている:SQL Serverの2つのテーブルをマージする方法は?

table 1 
--------------- 
ID Name Fname 
1 N1  FN1 
2 N2  FN2 
3 N3  FN3 

table 2 
--------------- 
TID  Day Hour ID 
1  30  14  1 
2  30  14  2 

を、私はこの結果を示したい:

Result Table 
--------------- 
ID Name Fname TID  Day Hour 
1 N1  FN1  1  30  14 
2 N2  FN2  2  30  14 
3 N3  FN3  ---  --- --- 

注:「表2でIDがキーフォーム表1をforginと私は私ができるので、参加は使用しないでください両方のテーブルのすべての行を取得します。

上記の表を表示するには、何が必要ですか?

ありがとうございました。

+0

を働くだろうに参加しますか? –

答えて

1

は、あなたの希望する結果を取得するために、次のクエリを使用します。

SELECT 
    Name, 
    FName, 
    (SELECT TID From Table2 WHERE ID=t1.ID) TID, 
    (SELECT [Day] From Table2 WHERE ID=t1.ID) [Day], 
    (SELECT [Hour] From Table2 WHERE ID=t1.ID) [Hour] 
FROM Table1 t1 
+0

私はちょうど左の結合をよりよく使用するためにタイプしていました、あなたはそれに私を打ちました – GuidoG

+0

あなたの返事をありがとう。しかし、私は結合を使用する場合、私はすべての行を取得することはできません。 [質問を編集] –

+1

あなたの素晴らしい解決策をありがとう、私の友人。 –

1

簡単な左はあなたが前にしてみてくださいどのようなクエリ

select 
* 
from 
table1 t1 
left join 
table2 t2 on t1.id=t2.id 
+0

あなたの返事をありがとう。しかし、私は結合を使用する場合、私はすべての行を取得することはできません。 [私の質問を編集しました] –

+0

@MortezaKarimiあなたは明らかにそれを試していませんでした。左外部結合は、データに基づいて求めているものとまったく同じです。 TIDはIDの外部キーであるため、完全外部結合は必要ありません。 –

0
SELECT t1.ID,t1.Name, t1.fname, t2.TID, t2.Day, t2.Hour 
From Table` t1 
LEFT OUTER JOIN Table2 t2 
on t1.ID = t2.ID 
+0

へようこそStackOverflow Rajesh。これは正しい答えのようですが、なぜそれが役に立つのか説明した方が良いでしょう。また、クエリ全体に対してマークダウンを使用するように再フォーマットしました。 –

関連する問題