SQL에 집합 구분이 있나요?
-
02-07-2019 - |
문제
나는 집합 분할이 일련의 다른 작업을 통해 수행될 수 있다는 것을 잘 알고 있으므로 내 질문은 다음과 같습니다.
SQL에 집합 나누기 명령이 있나요?
해결책
http://vadimtropashko.files.wordpress.com/2007/02/ch3.pdf
32페이지부터:
관계 분할은 기본 연산자가 아닙니다.이는 투영, 데카르트 곱, 집합 차이로 표현될 수 있습니다.
그래서 아니야.:)
다른 팁
관계형 대수 구문을 사용한 좋은 설명은 다음과 같습니다..
주어진 테이블 sailors
, boats
그리고 reserves
(Ramakrishnan & Gehrke의 "데이터베이스 관리 시스템"의 예) 다음 쿼리를 사용하여 모든 보트를 예약한 선원을 계산할 수 있습니다.
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)
);
제휴하지 않습니다 StackOverflow