Рассмотрим таблицу (имя Термин) следующим образом:
[Id] [int] IDENTITY(1,1) NOT NULL,
[CategoryId] [int] NOT NULL,
[Label] [nvarchar](256) NOT NULL,
[Uri] [nvarchar](1024) NOT NULL
Теперь рассмотрим, что определены две категории: CategoryId 1 и CategoryId 2, и есть несколько терминов, которые относятся либо к категории 1, либо к категории 2.Я пытаюсь найти те Условия, которые имеют один и тот же URI, но разные ярлыки в этих двух категориях или в одной из этих двух категорий.Для этого я попытался написать самоподключаемый SQL:
SELECT
t1.Id AS TermId1,
t2.Id AS TermId2
FROM
Term t1 INNER JOIN Term t2 ON t1.Uri = t2.Uri
WHERE
t1.CategoryId IN (@CategoryId1, @CategoryId2) AND
t2.CategoryId IN (@CategoryId1, @CategoryId2) AND
t1.Label <> t2.Label
Это работает нормально, но каждая строка возвращается дважды ... Например,
TermId1, TermId2 TermId2, TermId1
Если termId1 отличается от termId2, то нет необходимости иметь результат в обратном порядке.Итак, как мне получить результаты один раз?
Спасибо за помощь,