0

コンピューター サイエンス教育の課題の一環として、クエリを SQL から関係代数式に変換するように依頼されました。

ここでのクエリの背後にあるアイデアは、1 つのテーブルからすべての部屋を検索することです。このテーブルには、プロジェクターの機器タイプがありますが、ホワイトボードはありません。次のクエリはそれを実行しますが、関係代数式に変換するのに苦労しています。 .

SELECT 
    e.room, e.type
FROM 
    Equipment AS e
LEFT OUTER JOIN 
    Equipment AS e2 ON e.room = e2.room AND e2.type = 'whiteboard'
WHERE 
    e.type = 'projector'
    AND e2.type IS NULL;

私はかなりの初心者であり、一般的にここでロジックが表示されないようです。

4

1 に答える 1

1

ロジックは次のとおりです。部屋を選択し、部屋にプロジェクターがある機器からタイプします。ホワイトボードのある機器から部屋と交差します。プロジェクターはあるがホワイトボードがない交差点の部分のみを保持します (AND e2.type IS NULL は、部屋がホワイトボード グループに見つからなかったことを意味します)。

http://sketchtoy.com/50426780

言い換え:

find group A from group ROOM?EQUIPMENT that has projectors
find group B from group ROOM?EQUIPMENT that has whiteboards
Intersect A and B
keep the part of group A where room IDs are not found in group B
于 2013-09-20T07:43:36.587 に答える