2
我想寫以下問題作爲關係代數:對於具有價格更低的替代產品的所有產品多關係代數加入
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
但我不知道怎樣才能得到相同的導致關係代數。我猜想我也需要在這裏進行三方加入,但是在特定產品的一個價格應低於其替代品的情況下遇到問題。
Eequi-joins是最常見的類型連接,但連接的條件不一定是平等的。它可以是任何東西,總稱是「theta-join」(「θ-join」)。參見[維基百科加入頁面](http://en.wikipedia.org/wiki/Relational_algebra) –