Tsql 返回所有记录,无论是否存在匹配项
在我的表1中,对应记录的地址列中可能有空条目,也可能有空条目,或者表2中没有匹配条目。 我想展示表1中的所有记录,但也要展示表2中的相应条目。我的结果就是我想要达到的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
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列指的是什么?