我下面有一段代码,根据条件我想知道为什么问题无效
CREATE VIEW HotelBookingCount (hotelNo, bookingCount)
AS SELECT h.hotelNo, COUNT(*)
FROM Hotel h, Room r, Booking b
WHERE h.hotelNo = r.hotelNo AND r.roomNo b.roomNo
GROUP BY h.hotelNo;
问题是:
SELECT hotelNo
FROM HotelBookingCount
WHERE bookingCount > 1000;
当我输入时显示错误 这背后的逻辑是什么?为什么我不应该这样做?
答案 0 :(得分:1)
你不能以VIEW
的方式进行,并且没有任何东西可以传递参数,因为它们未被使用。试试 -
CREATE VIEW HotelBookingCount
AS SELECT h.hotelNo, COUNT(*) bookingCount
FROM Hotel h, Room r, Booking b
WHERE h.hotelNo = r.hotelNo AND r.roomNo b.roomNo
GROUP BY h.hotelNo;
然后
SELECT hotelNo
FROM HotelBookingCount
WHERE bookingCount > 1000;