2

SQLクエリ(ID番号1000の人の友達の友達のリスト名)を関係代数に変換しようとしていますが、あまり運がありません。クエリは次のとおりです。

CREATE TEMPORARY TABLE Temp1 AS (
SELECT * FROM ( 
SELECT ID2 AS ID FROM isFriend WHERE ID1 = 1000 
UNION
SELECT ID1 AS ID FROM isFriend WHERE ID2 = 1000
) temp 
);

CREATE TEMPORARY TABLE Temp2 AS (SELECT * FROM MyTable);

SELECT Name FROM People WHERE ID IN (
SELECT ID2 AS ID FROM isFriend WHERE ID1 IN (SELECT * FROM Temp1)
UNION
SELECT ID1 AS ID FROM isFriend WHERE ID2 IN (SELECT * FROM Temp2)
);

私が最初にしたことは、名前変更操作を使用して一時テーブルを作成することでした。

ρ(Temp1,∏ID1(σID2=1000(isFriend)) U (∏ID2(σID1=1000(isFriend)))

その後、「SELECTName...」以外はどうしたらいいのかよくわかりません。

∏Name(σID.....)

Select操作で名前が変更された一時テーブル「Temp1」を参照するにはどうすればよいですか。また、「IN」キーワード(WHERE ID1 IN ...)をどのように変換しますか?

私は関係代数全体に少し慣れていないので、(RAの経験がある人にとって)本当に明白なことを完全に見落としても驚かないでしょう。

助けていただければ幸いです、ありがとう!

4

0 に答える 0