Надеюсь, я пропустил простое решение.
У меня две таблицы. Один содержит список компаний. Второй содержит список издателей. Отображение между ними много для многих. То, что я хотел бы сделать, это расслоение или группирование всех компаний в таблице A, которые имеют какое-либо отношение к издателю в таблице B и наоборот.
Конечный результат будет выглядеть примерно так (GROUPID - это ключевое поле). Строки 1 и 2 находятся в одной группе, потому что они имеют одну и ту же компанию. Строка 3 находится в той же группе, потому что издатель Y уже сопоставлен с компанией A. Row 4 находится в группе, потому что компания B уже сопоставлена с группой 1 через издатель Y.
Говоря просто, в любое время, когда есть какие-либо общие отношения между Компанией и Издателем, эта пара должна быть назначена той же группе.
ROW GROUPID Company Publisher
1 1 A Y
2 1 A X
3 1 B Y
4 1 B Z
5 2 C W
6 2 C P
7 2 D W
Update:
Моя версия бонуса: учитывая таблицу в скрипке выше пар просто Company
и Publisher
, заполните поле GROUPID
выше. Подумайте об этом как о создании идентификатора Family
, который охватывает всех родственных родителей/детей.
SQL Server 2012