2016-09-02 4 views
0

Ну, у меня есть таблица со списком компьютеров и их скорость и оперативная память. Как я могу сделать запрос для извлечения всех пар компьютеров с одинаковой скоростью и оперативной памятью в качестве примера? Я могу только показать пару раз, так что (я, у) вместо (I, J) и (J, I)Выбор пар элементов

что-то вроде этого:

Model | Speed | ram 
1006 | 200 | 32 
1007 | 200 | 32 
1008 | 160 | 16 
1009 | 160 | 32 

Так что пар будет 1006 и 1007

+2

Что произойдет, если есть три компьютера с той же скоростью и баран? –

ответ

1

Это автообъединение:

select c.model, c2.model, c.speed, c.ram 
from computers c join 
    computers c2 
    on c.speed = c2.speed and c.ram = c2.ram and c.model < c2.model; 
+0

Спасибо, вот что я искал. Я до сих пор получал пары, но повторял их. Как именно эта часть: работает и c.model William

+1

Это то, что ограничивает его одной из двух пар. Он вернет 1006, 1007, но не 1007, 1006 –

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