2013-09-18 2 views
0

Я пытаюсь получить приведенные ниже результаты из одной таблицы, содержащей коды.Запрос Sql для получения уникальных комбинаций полей

From : 
CodesMaster Table 
----------- 
Code 
----- 
1 
2 
3 
4 

To : 
Code1 Code2 
----- ----- 
2 1 
3 1 
4 1 
3 2 
4 2 
4 3 

Этот запрос возвращает все комбинации.

select C1.Code, C2.Code from 
    CodesMaster C1, CodesMaster C2 
    where C1.Code <> C2.Code 

Но мне нужно отфильтровать уникальные комбинации. Например: если 1 - 2 существует, тогда мне не нужно 2 - 1

EDIT: IDS не всегда Целые числа. В реале это будет так: ADE1, BDE3

+1

Что это? MySql или Sql Server? Это два очень разных БД. –

ответ

4
select C1.Code, C2.Code 
from CodesMaster C1 
inner join CodesMaster C2 ON C1.Code > C2.Code 
+0

+1 простой, но эффективный – Stephan

+0

Извините, что я пропустил упоминание, я дал идентификаторы как целое, чтобы проиллюстрировать вопрос. В идеале он будет иметь альфа-символ, например: ADE1, BDE3 – pili

+0

@pili он все равно должен работать –

2
select C1.Code, C2.Code from 
CodesMaster C1, CodesMaster C2 
where C1.Code < C2.Code 
+0

К сожалению, я пропустил упоминание, я дал идентификаторы как целое, чтобы проиллюстрировать вопрос. В идеале он будет иметь альфа-символ, например: ADE1, BDE3 – pili

+0

Строки также сопоставимы. –

Смежные вопросы