我正在尝试将以下问题写为关系代数:
所有具有较低价格替代产品的产品的 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-way-join,但是在特定产品的一个价格应该低于其替代品的情况下遇到了麻烦。