SELECT SQL_CALC_FOUND_ROWS wpvl_posts.*, 1 rooms_available, 0 rooms_booked , IFNULL((SELECT price_meta2.meta_value + 0 FROM wpvl_postmeta price_meta2 WHERE price_meta2.post_id=wpvl_posts.ID AND price_meta2.meta_key='_accommodation_min_price:2024-12-21:2026-12-21' LIMIT 1), 0) accommodation_price , IFNULL((SELECT price_meta3.meta_value + 0 FROM wpvl_postmeta price_meta3 WHERE price_meta3.post_id=wpvl_posts.ID AND price_meta3.meta_key='accommodation_static_from_price' LIMIT 1), 0) accommodation_static_price
FROM wpvl_posts INNER JOIN wpvl_postmeta ON ( wpvl_posts.ID = wpvl_postmeta.post_id )
WHERE 1=1 AND (
( wpvl_postmeta.meta_key = 'accommodation_is_featured' AND CAST(wpvl_postmeta.meta_value AS SIGNED) = '1' )
) AND wpvl_posts.post_type = 'accommodation' AND ((wpvl_posts.post_status = 'publish'))
GROUP BY wpvl_posts.ID HAVING 1=1
ORDER BY RAND()
LIMIT 0, 3
SELECT SQL_CALC_FOUND_ROWS wpvl_posts.*, (
SELECT SUM(rooms_available) rooms_available FROM (SELECT IFNULL(SUM(room_count), 0) rooms_available, availabilities.accommodation_id FROM wpvl_byt_accommodation_vacancies availabilities INNER JOIN (
select d.the_date from
(
select adddate('2024-12-21',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) the_date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4
having the_date between '2024-12-21' and '2026-12-21'
ORDER BY the_date
) d
where DATE(d.the_date) >= DATE(CURDATE())
group by d.the_date
order by d.the_date
) possible_dates ON (possible_dates.the_date >= DATE(availabilities.start_date) AND possible_dates.the_date < DATE(availabilities.end_date)) WHERE 1=1 AND ('2024-12-21' BETWEEN start_date AND end_date OR start_date <= '2026-12-21') AND end_date >= '2024-12-21' GROUP BY possible_dates.the_date, availabilities.accommodation_id ) as ra WHERE accommodation_id = wpvl_posts.ID ) rooms_available , (
SELECT IFNULL(SUM(rooms_booked), 0) rooms_booked FROM ((SELECT IFNULL(SUM(bookings.room_count), 0) rooms_booked, bookings.accommodation_id, possible_dates.the_date FROM wpvl_byt_accommodation_bookings bookings INNER JOIN (
select d.the_date from
(
select adddate('2024-12-21',t4.i*10000 + t3.i*1000 + t2.i*100 + t1.i*10 + t0.i) the_date from
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t0,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t1,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t2,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t3,
(select 0 i union select 1 union select 2 union select 3 union select 4 union select 5 union select 6 union select 7 union select 8 union select 9) t4
having the_date between '2024-12-21' and '2026-12-21'
ORDER BY the_date
) d
where DATE(d.the_date) >= DATE(CURDATE())
group by d.the_date
order by d.the_date
) possible_dates ON (possible_dates.the_date >= DATE(bookings.date_from) AND possible_dates.the_date < DATE(bookings.date_to)) AND IFNULL(woo_status, '') IN ('completed') WHERE 1=1 GROUP BY possible_dates.the_date, accommodation_id ) as rb, (SELECT MIN(start_date) min_start_date, MAX(end_date) max_end_date, accommodation_id FROM wpvl_byt_accommodation_vacancies GROUP BY accommodation_id) min_max_available_dates ) WHERE rb.accommodation_id = wpvl_posts.ID AND min_max_available_dates.accommodation_id = wpvl_posts.ID AND rb.the_date >= min_max_available_dates.min_start_date AND rb.the_date < min_max_available_dates.max_end_date ) rooms_booked , IFNULL((SELECT price_meta2.meta_value + 0 FROM wpvl_postmeta price_meta2 WHERE price_meta2.post_id=wpvl_posts.ID AND price_meta2.meta_key='_accommodation_min_price:2024-12-21:2026-12-21' LIMIT 1), 0) accommodation_price , IFNULL((SELECT price_meta3.meta_value + 0 FROM wpvl_postmeta price_meta3 WHERE price_meta3.post_id=wpvl_posts.ID AND price_meta3.meta_key='accommodation_static_from_price' LIMIT 1), 0) accommodation_static_price
FROM wpvl_posts INNER JOIN wpvl_postmeta ON ( wpvl_posts.ID = wpvl_postmeta.post_id )
WHERE 1=1 AND (
wpvl_postmeta.meta_key = 'accommodation_star_count'
) AND wpvl_posts.post_type = 'accommodation' AND ((wpvl_posts.post_status = 'publish'))
GROUP BY wpvl_posts.ID HAVING 1=1 AND rooms_available > rooms_booked AND rooms_available >= 1
ORDER BY wpvl_postmeta.meta_value+0 DESC
LIMIT 0, 24