2016-03-21 7 views
1

假设有一个表调用项目,它包含3个属性(姓名,ID,价格):如果没有选择运营商的条件下使用连词

name  id  price 

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

我应该如何编写一个查询使用常量选择运营商选择具有相同价格和相同ID的商品?我想到的第一件事就是使用重命名操作符将id重命名为id',然后将其与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 

不过,我仍然认为你的假设是对的,你仍然可以通过重命名来实现。我相信这比我上面做的要长。