2013-04-09 57 views
0

我的场景是这样的:
表A是不同系统配置值的关键(映射)。我正在创建一个配置面板,并且在TableA的查询中,结果将被SystemName过滤。查询两个表的映射配置

我的问题是,我无法得到结果中显示空/空/值的结果。这是必需的,因为UI基于此结果呈现标签和文本框。

TableB可能有也可能没有配置图中所有键的值。

我想在这个格式(即首先从TableA的所有值,然后填补表B的值并返回结果)的值:

TableA 
ID Name SystemName 
1 Path1 SystemA 
2 Path2 SystemA 
3 Path3 SystemA 
4 Path1 SystemB 
5 Path2 SystemB 
6 Path3 SystemB 


TableB 
ID TableAID Value 
1 2  //Volumes/SomeDrive/SomeFolder 

Result 
ID Name TableAID SystemName Value 
1 Path1 1  SystemA '' 
2 Path2 2  SystemA //Volumes/SomeDrive/SomeFolder 
3 Path3 3  SystemA '' 

对此有一个简单的解决方案。

在此先感谢

回答

0
SELECT ISNULL(TableB.ID, TableA.ID) AS ID, 
    TableA.Name, 
    TableA.ID as TableAID, 
    TableA.SystemName, 
    ISNULL(TableB.Value,'') AS Value 
FROM TableA 
LEFT OUTER JOIN TableB 
    ON TableA.ID = TableB.ID 
-1

是的,您使用外部联接而不是内部。

+0

为什么选择投票?这是解决方案,因为选定的答案证明了这一点。 – Steve 2013-04-09 17:08:46