查询中的单个SQL Server结果集

JAR*_*ARC 2 sql sql-server sql-server-2005

请告知如何使用SQL Server 2005将两个结果合并为一个.

我有这样的情况,Account最多可以有两个Settlement Instructions,这已经建模如下:

细长的架构:

Account
---------------------
Id
AccountName
PrimarySettlementId (nullable)
AlternateSettlementId (nullable)


SettlementInstruction
----------------------
Id
Name
Run Code Online (Sandbox Code Playgroud)

我想要的输出是一个single result set带有select语句的东西,这将允许我在Spring行映射器中构造一些java对象:

select
  Account.Id as accountId, 
  Account.AccountName as accountName, 

  s1.Id as primarySettlementId, 
  s1.Name as primarySettlementName, 

  s2.Id as alternateSettlementId, 
  s2.Name as alternateSettlementName
Run Code Online (Sandbox Code Playgroud)

我已经尝试了各种各样的东西但是找不到将结果集合并到主要和备用FK不为空的结果集的方法.

最后我搜索了论坛,但似乎没有什么比我需要的更合适.

ara*_*nid 6

你需要一个外部联接.

select
  Account.Id as accountId, 
  Account.AccountName as accountName, 

  s1.Id as primarySettlementId, 
  s1.Name as primarySettlementName, 

  s2.Id as alternateSettlementId, 
  s2.Name as alternateSettlementName
from Account
     left join SettlementInstruction s1 ON s1.Id = Account.PrimarySettlementId
     left join SettlementInstruction s2 ON s2.Id = Account.SecondarySettlementId
where /* ... */
Run Code Online (Sandbox Code Playgroud)