2013-04-17 2 views
-4

는 관계 보트 (BID, BNAME, COLOR), 선원 (SID, SNAME, AGE, 등급) 매장량 (BID는, SID, DAY) 내가의 입찰을 검색 할 고려 감안할 때 보트가 모든 선원에 의해 예약 된 경우 모든 선원오라클 SQL 쿼리는 스키마

답변

1

올바른 관계 분할 구현은 여기에 있습니다. 다른 사람들은 집계를 제안 할 수도 있지만 특정 상황에서 오도 된 정보로 이어질 수 있습니다 (가양 성) - "예약되지 않은 배는 무엇입니까?"

SELECT bid FROM Boat WHERE NOT EXISTS (SELECT sid FROM Sailor WHERE SID NOT IN (SELECT Sid from Reserves WHERE Sailor.SID = Reserves.SID)) 
0

을가 보유 보트는 RESERVES.SID는 (전용 고유 한 SID를 계산) 보트에 대한 계산 선원의 수와 동일합니다 :

SELECT bid FROM Reserves 
GROUP BY bid 
HAVING COUNT(DISTINCT sid) = (SELECT COUNT(sid) FROM Sailor)