2013-03-13 127 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%'