2013-03-17 2 views
0

죄송합니다. 바보 같은 질문이지만 호텔 시스템 데이터베이스, "Rooms"테이블 및 "Guests"테이블에 2 개의 테이블이 있습니다.항목을 선택하십시오 count = 0

방 테이블에는 해당 방 번호 (기본 키)에 대한 room_number 열이 있습니다. Guests 테이블에는 guest가 머무르는 룸 번호 (외래 키)에 대한 room_number 열이 있습니다.

손님이없는 방의 방 번호 만 반환하는 쿼리가 필요합니다. 순간

나는이있다 :

이 모든 탑승자 수를 반환
SELECT Rooms.room_number, COUNT(Guests.guest_id) AS occupant_count 
From Rooms,Guests 
WHERE (Rooms.room_number = Guests.room_number) 

. 손님이없는 방의 객실 번호 만 반환하려면 어떻게해야합니까?

미리 도움을 청하십시오!

+0

여기서'GROUP BY' 절은 어디에 있습니까? 'GROUP BY'를 추가하고 HAVING COUNT (Guests.guest_id) = 0'을 추가하면 완료됩니다. – bernie

+0

예, 바보가 아니라 사소한 것입니다. 그리고 저는 그가 모르는 것을 묻기 위해 o/p를 표시하지 않는 것이 합리적이라고 생각하지 않습니다. – Zeddy

+0

대단히 감사합니다! 나는 대부분 단순한 SQL을 사용하는데, GROUP BY 절을 사용하는 연습이 더 필요하다. –

답변

1

어리석지 않고 사소한 것입니다.

SELECT Rooms.room_number 
From Rooms 
WHERE Rooms.room_number not in (select Guests.room_number 
           from Guests) 
+0

감사! 이것은 트릭을했다! –

1

두 테이블간에 외부 조인을 수행하고 쿼리 끝에 AND Guests.room_number is null을 추가하십시오.

관련 문제