SELECT
p.price,
h.name AS hotel_name
FROM
prices p
LEFT JOIN hotels h ON p.hotel_id = h.id
WHERE
p.city = 'boedapest'
AND p.hotel_id IS NOT NULL
GROUP BY p.name
ORDER BY p.price ASC
РЕЗУЛЬТАТ:
26 Eben Hotel Budapest
27 Veritas
28 Ibis Budapest Heroes Square
29 Hunguest Hotel Griff
30 Отель Томас
31 NH Budapest
31 Рубин Велнесс и Конференц Отель
32 Benczur Hotel
33 Атлантика
33 Delibab Hotel Budapest
Точно такой же результат с закомментированной GROUP BY:
24 Геранд Отель Вентура
25 Hunguest Hotel Platanus
Гостевой дом City Boulevard 26
26 Tulip Inn Millennium Budapest
26 Eben Hotel Budapest
27 Veritas
27 бароссов
28 Отель Томас
28 Hunguest Hotel Griff
28 Ibis Budapest Heroes Square
В основном я хотел бы группировать по имени, но оставляю ORDER BY. Поскольку 24 меньше, чем 26, я ожидаю, что он появится раньше, чем 26. Также имейте в виду, я показываю только первые 10 результатов, чтобы держать пост коротким.
Я использую: SELECT VERSION () -> 5.1.37