Объединить 2 таблицы с помощью таблицы сопоставления - полные объединения? - PullRequest
0 голосов
/ 25 ноября 2010

Вкратце, у меня есть 2 таблицы, в которых «эквивалентные» строки находятся друг в друге. Эквивалентности сохраняются в 3-й таблице сопоставления (которая отображает идентификатор A на идентификатор B). В представлении я хочу создать консолидированное представление, которое показывает:

  • Все записи, которые существуют в таблице A, но не имеют эквивалента в таблице B (по 1 строке каждая)
  • Все записи, которые существуют в таблице B, но не имеют эквивалента в таблице A (по 1 строке в каждой)
  • Все записи, которые существуют в обеих таблицах A и B (одна строка на совпадение A / B)

Это проще объяснить графически ...

У меня есть следующий сценарий (показан на рисунке ниже):

Текущий сценарий alt text

Я уверен, что это намного проще, чем кажется - я жевал это некоторое время и не могу заставить его работать.

1 Ответ

0 голосов
/ 25 ноября 2010

Как насчет

select a.ID as A_ID, a.Desc as A_Desc, b.ID as B_ID, b.Desc as B_DESC
from Table_A as a left outer join Mapping_Table as m on a.ID = m.A_ID
full outer join Table_B as b on m.B_ID = b.ID
...