문제

나는 집합 분할이 일련의 다른 작업을 통해 수행될 수 있다는 것을 잘 알고 있으므로 내 질문은 다음과 같습니다.

SQL에 집합 나누기 명령이 있나요?

도움이 되었습니까?

해결책

http://vadimtropashko.files.wordpress.com/2007/02/ch3.pdf

32페이지부터:

관계 분할은 기본 연산자가 아닙니다.이는 투영, 데카르트 곱, 집합 차이로 표현될 수 있습니다.

그래서 아니야.:)

다른 팁

관련 질문: 태깅을 위한 데이터베이스 설계

그리고 대답의 관련 부분은 이 기사

즉, 아니요, SQL에는 집합 구분이 없습니다.

관계형 대수 구문을 사용한 좋은 설명은 다음과 같습니다..

주어진 테이블 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)
);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top