我已閱讀了許多類似的問題,但無法使其適用於我自己。我正在創建一個酒店預訂系統,我希望列出在請求的預訂日期內至少有一個房間可用的酒店。MySQL - 查找在某些日期可用的酒店
這裏就是我有這麼遠
SELECT
ac.id,
ac.name,
ac.link,
ac.type,
ac.country,
co.name AS countryName,
ac.state,
st.statename,
ac.cityid AS cityId,
ci.name AS cityName,
ac.addr,
ac.featuredimage,
ac.amenities,
ac.starrating,
ac.bookings_received,
ro.roomprice,
SUM(ro.numberofrooms) AS totalRooms,
roomsBooked = (
SELECT
*,
SUM(numberofroomsbooked) AS roomsBooked
FROM
bookings
WHERE
reservationto >= '2016-07-07' AND reservationfrom <= '2016-07-09'
AND hotelid = ro.hotel
)
FROM
accomodations ac
JOIN countries co ON ac.country = co.id
JOIN states st ON ac.state = st.id
JOIN city ci ON ci.id = ac.cityid
JOIN room ro ON ac.id = ro.hotel
WHERE
ac.active = 1 AND ac.delete = 0
GROUP BY
ac.id
我是新來的MySQL查詢,這真的是越來越不可收拾。這個想法是計算一個酒店的房間總數,並減去在給定的日期範圍內預訂的房間總數。我可以得到一些幫助嗎?
的子查詢完全在它自己的
SELECT
*,
SUM(numberofroomsbooked) AS roomsBooked
FROM
bookings
WHERE
reservationto >= '2016-07-07' AND reservationfrom <= '2016-07-09'
AND hotelid = ro.hotel
的作品,但不是在這一個。
添加一些示例數據,您的預期結果更有幫助。 – Blank
idem與@ 10086 –
我無法將我的數據添加到sqlfiddle,您有其他建議嗎? – VeeK