2017-03-13 40 views
-2

我有兩個表是這樣的:如何在sql server中合併兩個表?

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  ---  --- --- 

注:ID在表2中forgin鍵的形式表1,我不使用加入,因爲我可以」在兩個表中都得到所有的行。

需要什麼sql命令來顯示上表?

非常感謝。

+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。這似乎是一個正確的答案,但如果你解釋了爲什麼它有幫助,那會更好。我也重新格式化了整個查詢使用降價。 –