2016-03-21 2 views
1

Допустим есть таблица вызова ITEM и содержит 3 атрибуты (имя, идентификатор, цена):Без использования конъюнкции в условиях операторов выбора

name  id  price 

Apple  1  3 
Orange 1  3 
Banana 2  4 
Cherry 3  5 
Mango  1  3 

Как я должен написать запрос, чтобы использовать выбор константы оператора, чтобы выбрать тот элемент, который имеет одинаковые цены и те же идентификаторы? Первое, что приходит на ум, - это использовать оператор переименования для переименования id в id 'и price to price', а затем объединить его с таблицей ITEM, но так как мне нужно выбрать 2 кортежа (price = price '& id = id ') из таблицы, как я могу их выбрать без использования оператора конъюнкций в реляционной алгебре?

спасибо.

ответ

1

Я не совсем уверен, но для меня, это было бы что-то подобное в реляционного исчисления:

enter image description here

, а затем в SQL:

SELECT name FROM ITEM i WHERE 
    EXISTS ITEM u 
     AND u.name != i.name 
     AND u.price=i.price 
     AND u.id = i.id 

Но все-таки, я думаю, ваше предположение верно, вы все равно можете это сделать, переименовав. Я верю, что это немного дольше, чем то, что я делал выше.