在选择运算符的条件下不使用连词
Without using conjunctions in conditions of selection operators
假设有一个 table 调用 ITEM,它包含 3 个属性(名称、ID、价格):
name id price
Apple 1 3
Orange 1 3
Banana 2 4
Cherry 3 5
Mango 1 3
我应该如何编写查询以使用常量 select离子运算符 select 那些具有相同价格和相同 ID 的商品?我想到的第一件事是使用重命名运算符将 id 重命名为 id',将 price 重命名为 price',然后将其与 ITEM table 合并,但由于我需要 select 2 个元组 ( price=price' & id=id') 来自 table,我如何 select 它们而不使用关系代数中的连词运算符?
谢谢。
我不太确定,但对我来说,在关系演算中会是这样的:
然后在 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
不过,我还是觉得你的假设是对的,改名还是可以的。我确实相信它比我上面做的要长一些。
假设有一个 table 调用 ITEM,它包含 3 个属性(名称、ID、价格):
name id price
Apple 1 3
Orange 1 3
Banana 2 4
Cherry 3 5
Mango 1 3
我应该如何编写查询以使用常量 select离子运算符 select 那些具有相同价格和相同 ID 的商品?我想到的第一件事是使用重命名运算符将 id 重命名为 id',将 price 重命名为 price',然后将其与 ITEM table 合并,但由于我需要 select 2 个元组 ( price=price' & id=id') 来自 table,我如何 select 它们而不使用关系代数中的连词运算符?
谢谢。
我不太确定,但对我来说,在关系演算中会是这样的:
然后在 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
不过,我还是觉得你的假设是对的,改名还是可以的。我确实相信它比我上面做的要长一些。