我正在尝试将以下问题写为关系代数:
所有具有较低价格替代产品的产品的 Pnr 和 pname。
我的关系如下:
Product(Pnr, Pname, Price) //Product info
Substprod(Pnr, Subst-Pnr) //Product which can replace other products
如果我在 SQL 中执行此操作,它将看起来像这样:
SELECT p.pnr, p.pname
FROM Product p1, Substprod s, Product p2
WHERE p1.pnr = s.pnr
AND s.subst_pnr = p2.pnr
AND p1.price > p2.price
但我不明白如何在关系代数中得到相同的结果。我猜想我也需要在这里进行 3 路连接,但在特定产品的一个价格应低于其替代品的条件下遇到了麻烦。
最佳答案
也许是这样的?确切的语法有点生疏,但总体思路是这样的。
T1 <- ρ pris = substpris (Product ⨝ Substprod)
T2 <- σ price > substprice (T1 ⨝ Product)
T3 <- π pnr,name (T2)
关于sql - 具有多重连接的关系代数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12818560/