GET https://www.chalet-montagne-api-dev.azertyui.fr/api/public-front/search?stationId=31

Query Metrics

3 Database Queries
3 Different statements
3.86 ms Query time
0 Invalid entities
0 Managed entities

Queries

Group similar statements

# Time Info
1 1.84 ms
SELECT h.id, h.name, h.surface, h.nb_places AS nbPlaces, h.nb_confortable_places AS nbConfortablePlaces, h.max_nb_places_with_baby AS maxNbPlacesWithBaby, h.nb_rooms AS nbRooms, h.points, h.latitude, h.longitude, ht.id AS hostingTypeId, ht.name AS hostingTypeName, s.name AS stationName, s.slug_name AS stationSlug, s.massif AS stationMassif, s.department AS stationDepartment, CASE WHEN r.boost_date >= NOW() THEN 1 ELSE 0 END AS boost, COALESCE(r.exceptional_rental, 0) AS isExclusive, COALESCE(r.system_is_renting_downgraded, 0) AS isDowngraded, hc.classification AS hostingClassification, hc.level AS hostingClassificationLevel, hd_s.distance AS distanceFromStationKm, hd_l.distance AS distanceFromSkiLiftKm, COALESCE(l.trusted, 0) AS isTrusted, UNIX_TIMESTAMP(r.updated_at) AS updatedAt, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS minPricePerWeek, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS maxPricePerWeek, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS minBasePrice, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS maxBasePrice, MAX(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN 1 ELSE 0 END) AS isLastMinute, CAST(FLOOR(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.week_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1)) AS UNSIGNED) AS lastMinutePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.base_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS basePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.id ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS lastMinutePricingScheduleId, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.discount_percentage ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS discountPercentage, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateStart, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY), INTERVAL COALESCE(ps.min_nb_of_nights, 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateEnd, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.arrival_day ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteArrivalDay FROM hosting h INNER JOIN rental r ON h.rental_id = r.id LEFT JOIN hosting_type ht ON h.hosting_type_id = ht.id LEFT JOIN station s ON h.main_station_id = s.id LEFT JOIN user u ON h.lessor_id = u.id LEFT JOIN pricing_schedule ps ON ps.hosting_id = h.id AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()) LEFT JOIN tag t ON h.tag_id = t.id LEFT JOIN hosting_class hc ON h.hosting_class_id = hc.id LEFT JOIN hosting_distance hd_s ON h.distance_from_station_km_id = hd_s.id LEFT JOIN hosting_distance hd_l ON h.distance_from_ski_lift_id = hd_l.id LEFT JOIN lessor l ON l.id = u.id WHERE (h.deleted_at IS NULL) AND (r.deleted_at IS NULL) AND (r.system_is_renting_allowed = 1) AND (h.main_station_id = ?) GROUP BY h.id HAVING MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) > 0 ORDER BY boost DESC, isExclusive DESC, isDowngraded ASC, h.points DESC LIMIT 30
Parameters:
[
  31
]
2 1.11 ms
SELECT COUNT(*) FROM (SELECT h.id, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS minPricePerWeek, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS maxPricePerWeek, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS minBasePrice, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS maxBasePrice, MAX(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN 1 ELSE 0 END) AS isLastMinute, CAST(FLOOR(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.week_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1)) AS UNSIGNED) AS lastMinutePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.base_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS basePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.id ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS lastMinutePricingScheduleId, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.discount_percentage ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS discountPercentage, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateStart, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY), INTERVAL COALESCE(ps.min_nb_of_nights, 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateEnd, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.arrival_day ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteArrivalDay FROM hosting h INNER JOIN rental r ON h.rental_id = r.id LEFT JOIN hosting_type ht ON h.hosting_type_id = ht.id LEFT JOIN station s ON h.main_station_id = s.id LEFT JOIN user u ON h.lessor_id = u.id LEFT JOIN pricing_schedule ps ON ps.hosting_id = h.id AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()) LEFT JOIN tag t ON h.tag_id = t.id LEFT JOIN hosting_class hc ON h.hosting_class_id = hc.id LEFT JOIN hosting_distance hd_s ON h.distance_from_station_km_id = hd_s.id LEFT JOIN hosting_distance hd_l ON h.distance_from_ski_lift_id = hd_l.id LEFT JOIN lessor l ON l.id = u.id WHERE (h.deleted_at IS NULL) AND (r.deleted_at IS NULL) AND (r.system_is_renting_allowed = 1) AND (h.main_station_id = ?) GROUP BY h.id HAVING MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) > 0) AS cnt
Parameters:
[
  31
]
3 0.90 ms
SELECT h.id, h.name, h.surface, h.nb_places AS nbPlaces, h.nb_confortable_places AS nbConfortablePlaces, h.max_nb_places_with_baby AS maxNbPlacesWithBaby, h.nb_rooms AS nbRooms, h.points, h.latitude, h.longitude, ht.id AS hostingTypeId, ht.name AS hostingTypeName, COALESCE(s2.name, s.name) AS stationName, COALESCE(s2.slug_name, s.slug_name) AS stationSlug, COALESCE(s2.massif, s.massif) AS stationMassif, COALESCE(s2.department, s.department) AS stationDepartment, CASE WHEN r.boost_date >= NOW() THEN 1 ELSE 0 END AS boost, COALESCE(r.exceptional_rental, 0) AS isExclusive, COALESCE(r.system_is_renting_downgraded, 0) AS isDowngraded, hc.classification AS hostingClassification, hc.level AS hostingClassificationLevel, hd_s.distance AS distanceFromStationKm, hd_l.distance AS distanceFromSkiLiftKm, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS minPricePerWeek, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.week_price ELSE NULL END) AS maxPricePerWeek, MIN(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS minBasePrice, MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) AS maxBasePrice, MAX(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN 1 ELSE 0 END) AS isLastMinute, CAST(FLOOR(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.week_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1)) AS UNSIGNED) AS lastMinutePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.base_price ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS basePrice, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.id ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS lastMinutePricingScheduleId, CAST(SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.discount_percentage ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS UNSIGNED) AS discountPercentage, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateStart, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN DATE_ADD(DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY), INTERVAL COALESCE(ps.min_nb_of_nights, 7) DAY) ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteDateEnd, SUBSTRING_INDEX(GROUP_CONCAT(CASE WHEN ((ps.week_price IS NOT NULL AND ps.week_price > 0 AND ps.discount_percentage IS NOT NULL AND ps.discount_percentage > 0 AND ps.end_date > CURDATE() AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()))) THEN ps.arrival_day ELSE NULL END ORDER BY DATE_ADD(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END, INTERVAL ((COALESCE(CASE ps.arrival_day WHEN 'Sunday' THEN 1 WHEN 'Monday' THEN 2 WHEN 'Tuesday' THEN 3 WHEN 'Wednesday' THEN 4 WHEN 'Thursday' THEN 5 WHEN 'Friday' THEN 6 WHEN 'Saturday' THEN 7 ELSE NULL END, DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END)) - DAYOFWEEK(CASE WHEN ps.start_date < CURDATE() THEN DATE_ADD(CURDATE(), INTERVAL 1 DAY) ELSE ps.start_date END) + 7) % 7) DAY) ASC, ps.id ASC SEPARATOR '||'), '||', 1) AS lastMinuteArrivalDay FROM hosting h INNER JOIN rental r ON h.rental_id = r.id LEFT JOIN hosting_type ht ON h.hosting_type_id = ht.id LEFT JOIN station s ON h.main_station_id = s.id LEFT JOIN user u ON h.lessor_id = u.id LEFT JOIN pricing_schedule ps ON ps.hosting_id = h.id AND (ps.starting_date IS NULL OR ps.starting_date <= NOW()) LEFT JOIN tag t ON h.tag_id = t.id LEFT JOIN hosting_class hc ON h.hosting_class_id = hc.id LEFT JOIN hosting_distance hd_s ON h.distance_from_station_km_id = hd_s.id LEFT JOIN hosting_distance hd_l ON h.distance_from_ski_lift_id = hd_l.id LEFT JOIN station s2 ON h.secondary_station_id = s2.id LEFT JOIN lessor l ON l.id = u.id WHERE (h.deleted_at IS NULL) AND (r.deleted_at IS NULL) AND (r.system_is_renting_allowed = 1) AND (h.secondary_station_id = ?) GROUP BY h.id HAVING MAX(CASE WHEN ps.end_date >= CURDATE() THEN ps.base_price ELSE NULL END) > 0 ORDER BY boost DESC, isExclusive DESC, isDowngraded ASC, h.points DESC LIMIT 30
Parameters:
[
  31
]

Database Connections

Name Service
default doctrine.dbal.default_connection

Entity Managers

Name Service
default doctrine.orm.default_entity_manager

Second Level Cache

Second Level Cache is not enabled.

Managed Entities

default entity manager

Class Amount of managed objects

Entities Mapping

Class Mapping errors
App\Entity\Hosting No errors.