查询两个表的映射配置

时间:2013-04-09 15:02:35

标签: sql sql-server sql-server-2008 stored-procedures

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

我的问题是我无法使用结果中显示的空/ null /值获取结果。这是必需的,因为UI正在根据此结果呈现标签和文本框。

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

我想要这种格式的值(首先获取TableA中的所有值,然后填充TableB中的值并返回结果):

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    ''

是否有一个简单的解决方案。

提前致谢

2 个答案:

答案 0 :(得分: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 :(得分:-1)

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