Tsql 返回所有记录,无论是否存在匹配项

Tsql 返回所有记录,无论是否存在匹配项,tsql,join,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 T

在我的表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  

您需要一个外部联接:

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

你如何把这两张桌子连接起来?如果表2有多个匹配的地址,您希望如何显示它们?请澄清你的问题

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

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

那对我不起作用。如果我的表1有100条记录,我的结果应该只返回100条记录。我的答案中的字段不是联接的正确字段吗?请编辑问题以显示您一直使用的查询,并描述您的表关系。您没有包括表2中的地址部分,我需要它与表1中的关系ID字段(如果存在)相对应。我没有查询作为基础,因为我的尝试根本不起作用。如果我的问题不够清楚,我很抱歉。我只想用一个不为null的实际条目显示表2中的匹配地址,但也要包括表1中的所有条目,因此如果它们不匹配,则该记录将在地址部分显示为null。我刚刚测试了你的代码,它似乎可以工作。你如何连接你的两个表?从您的示例结果中,我假设表2中的RefId是表1中Id的外键?如果是这样的话,那么@Nicholai的答案就行了。表2中的Id列指的是什么?