Симметричное перекрестное соединение
я пытаюсь извлечь всю пару сказатьi,j
из каждого элемента в таблице против каждого элемента в той же таблице, вот мой запрос: I '
select a.Id L,b.id R into #cross from MyTable a cross join mytable b
м в ситуации, когдаi,j == j,i
так что нужна только половина записи. Моя наивная попытка:
select a.Id L,b.id R into #cross from MyTable a cross join mytable b
where not exists
(select * from #cross c where c.L=R and c.R=L)
Но я могу't запросить таблицу назначения при вставке, как сказано в SQL Server:
The SELECT INTO statement cannot have same source and destination tables
как я могу сделать это эффективно?
РЕДАКТИРОВАТЬ Просто для справки я сказал "Мне нужна половина записей, это неправильно, количество записей после учета того, чтоi,j == j,i
являетсяn*(n+1)/2