2013-04-09 2 views
0

Мой сценарий таков:
Таблица A - это ключи (карты) значений конфигурации для разных систем. Я создаю панель конфигурации, и в запросе для TableA результаты будут отфильтрованы SystemName.Запрос конфигурации отображения из двух таблиц

Моя проблема в том, что я не могу получить результат с пустыми/нулями/значениями, как показано в результате. Это необходимо, потому что пользовательский интерфейс создает метки и текстовые поля на основе этого результата.

Таблица B может иметь или не иметь значений для всех ключей в карте конфигурации.

Я хочу, чтобы значения в этом формате (который сначала получить все значения 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 '' 

Есть простое решение для этого.

Заранее спасибо

ответ

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

 Смежные вопросы

  • Нет связанных вопросов^_^