无论是否匹配,都返回所有记录

时间:2013-10-22 19:23:25

标签: tsql join

在我的表1中,它可能在地址列中有一个空条目到相应的记录,或者在表2中没有匹配的条目。 我想提供表1中的所有记录,但也提供表2中的相应条目。我的结果是我想要实现的。

Table 1         
ID  First   Last    
1   John    Smith   
2   Bob     Long    
3   Bill    Davis   
4   Sam     Bird    
5   Tom     Fenton  
6   Mary    Willis  

Table 2         
RefID   ID  Address 
1       1   123 Main    
2       2   555 Center  
3       3   626 Smith   
4       4   412 Walnut  
5       1       
6       2   555 Center  
7       3       
8       4   412 Walnut  

Result          
Id  First   Last    Address
1   John    Smith   123 Main
2   Bob     Long    555 Center
3   Bill    Davis   626 Smith
4   Sam     Bird    412 Walnut
5   Tom     Fenton  
6   Mary    Willis  

2 个答案:

答案 0 :(得分:1)

您需要一个外部联接:

SELECT * FROM Table1 t1 LEFT OUTER JOIN Table2 t2 ON t1.ID = t2.RefID

答案 1 :(得分:1)

你如何加入这两张桌子?如果表2具有多个匹配的地址,您希望如何显示它们?请在您的问题中澄清。

这是一个基于我的假设的查询。

SELECT
  ID, First, Last,
  Address =  (SELECT MAX(Address) FROM Table2 t2 WHERE t1.ID = t2.ID)
FROM Table1 t1