2013-03-13 175 views
0

如果我有以下兩個表格從多個檢索單個唯一記錄重複記錄

HOTELTABLE

HOTELID HOTEL NAME 
    1  PARK HOTEL 
    2  PARK PLAZA 
    3  HOLIDAY IN 

室的桌子

HOTELID ROOMINUMBER ROOMTYPE FLOORNUMBER ROOMRATE 
1   111   SINGLE   1   100 
1   111   DOUBLE   1   200 
1   113   DOUBLE   2   200 
2   111   FAMILY   2   300 

我想列出的酒店名稱,房型,每個酒店的房價包含名稱中的PARK這個詞,如果同一酒店的房間類型和價格相同,我只想列出一次。以下是我的代碼...我需要一個子查詢,我該如何解決這個查詢?

SELECT DISTINCT HOTELNAME, 
     DISTINCT ROOMTYPE, 
     DISTINCT ROOMRATE 
    FROM ROOM, 
     HOTEL 
WHERE HOTELNAME LIKE '%PARK%' 
GROUP BY HOTEL.HOTELNAME, 
     ROOMTYPE; 

的OUT PUT 768,16 BE

HOTEL NAME  ROOMTYPE ROOMMATE 
PARK HOTEL  SINGLE  100 
PARK HOTEL  DOUBLE  200 
PARK PLAZA  FAMILY  300 
+0

將是你的輸出即可。 – 2013-03-13 15:57:19

回答

1

在您選擇所有項目必須出現在羣分析研究。

而且您需要根據酒店ID實際將兩張桌子連接在一起。

SELECT H.HOTELNAME, R.ROOMTYPE, R.ROOMRATE 
FROM HOTEL H INNER JOIN ROOM R ON H,HOTELID = R.HOTELID 
WHERE H.HOTELNAME LIKE '%PARK%' 
GROUP BY H.HOTELNAME, R.ROOMTYPE, R.ROOMRATE 
+0

感謝大家工作 – nj2012 2013-03-13 16:25:59

2

另一種選擇:

SELECT DISTINCT 
    HOTELNAME, 
    ROOMTYPE, 
    ROOMRATE 
FROM 
    ROOM 
    JOIN HOTEL 
     ON ROOM.HOTEL_ID = HOTEL.HOTEL_ID 
WHERE 
    HOTELNAME LIKE '%PARK%'