我有以下SQL查詢:這個SQL查詢是否等價於這個關係代數語句?
SELECT foo.a, bar.b, baz.c FROM foo
INNER JOIN bar ON bar.id = foo.bar_id
INNER JOIN baz ON baz.id = foo.baz_id
WHERE foo.z = 50;
我想知道這是否是相當於這個關係代數語句。
π foo.a, bar.b, baz.c (foo) ⋈ bar.id = foo.bar_id (bar) ⋈ baz.id = foo.baz_id (baz) σ foo.z = 50
是的。 [這是一組幻燈片](http://www.cs.cornell.edu/projects/btr/bioinformaticsschool/slides/gehrke.pdf),您可以使用它將您的SQL轉換爲關係代數。 –
「關係代數」有很多種版本。根據我所見過的任何代數,你沒有正確使用項目或進行限制。如何在您應該使用的項目中定義項目,限制和連接?請爲您的版本提供參考。關係代數的大多數演示都限制和加入了關於*任何關係值*的工作。即沒有點。但是dot需要關係變量或常量的名稱(例如,您的答案和接受的答案)或其他值以及臨時名稱(例如SQL)。 – philipxy
你給了那個代數表達式,還是你產生了它? – philipxy