セットの除算は他の一連の操作によって実行できることを十分に認識しているので、私の質問は次のとおりです。
SQLに除算を設定するコマンドはありますか?
セットの除算は他の一連の操作によって実行できることを十分に認識しているので、私の質問は次のとおりです。
SQLに除算を設定するコマンドはありますか?
http://vadimtropashko.files.wordpress.com/2007/02/ch3.pdf
32ページから:
関係除算は基本的な演算子ではありません。これは、射影、デカルト積、および集合の差で表すことができます。
だから、いや。:)
テーブルsailors
と(Ramakrishnan & Gehrke の「データベース管理システム」の例) が与えられた場合、次のクエリを使用して、すべてのボートを予約した船員を計算できますboats
。reserves
SELECT name FROM sailors
WHERE Sid NOT IN (
-- A sailor is disqualified if by attaching a boat,
-- we obtain a tuple <sailor, boat> that is not in reserves
SELECT s.Sid
FROM sailors s, boats b
WHERE (s.Sid, b.Bid) NOT IN (
SELECT Sid, Bid FROM reserves
)
);
-- Alternatively:
SELECT name FROM sailors s
WHERE NOT EXISTS (
-- Not reserved boats
(SELECT bid FROM boats)
EXCEPT
(SELECT r.bid FROM reserves r
WHERE r.sid = s.sid)
);