/ / SQL продовжують вибирати записи на основі результату останнього вибору - sql, sql-сервер

SQL продовжує вибір записів на основі результатів останнього вибору - sql, sql-server

Заголовок цієї публікації, мабуть, невірний. У мене є таблиця на кшталт наведеної нижче, і мені потрібен SQL, який буде вибирати всі записи, пов'язані з певним значенням. Це таблиця "історії", яка відслідковує значення ідентифікаторів, де я відслідковую, яким раніше був ідентифікатор. Запис 1 розбивається на два і стає 2 і 3, потім, можливо, 2 і 3 зливаються разом і стають 4. Наприклад:

OldID    NewID
1        2
1        3
3        4
5        4
2        6
2        7

У наведеному вище прикладі запис 1 став 2 і 3. Запис 4 дорівнює 3, а 5 об'єднані разом. Рекорд 2 був частиною 1 і тепер розділився на 6 і 7.

Отже, якщо ми подивимось на запис NewID = 7, він пов'язаний із записами 2, 6 та 1

NewID 4 пов'язаний з 3, 5, 1 і 2.

Отже, врешті-решт, мені потрібен синтаксис, який обере всі записи, які були пов'язані таким чином з NewID = X. Це можливо? Це як рекурсія?

Відповіді:

0 для відповіді № 1

Ви шукаєте щось подібне?

declare @x int = 4
;with cte as (
select oldid, newid from table4 where newid = @x

union all

select t.oldid, t.newid from cte c inner join table4 t on c.OldId = t.newid
) select * from cte