Просто сделайте
COUNT (rm.id) как Total_Room_Types
Если у вас нет особой классификации, чтобы различать двухместные номера, номера с кроватью размера "queen-size" и "king-size".
Если ваш номер в отеле "Имя" относится к категории номеров, как описано выше, вам следует предварительно запросить типы номеров и присоединиться к ним.
SELECT
h.*,
COALESCE( PreQuery.Name, " " ) as RoomType,
COALESCE( PreQuery.RoomTypeCount, 0 ) as RoomTypeCount
FROM
yalladb_hotel h
LEFT JOIN ( select rm.hotel_id,
rm.name,
count(*) as RoomTypeCount
from
yalladb_room_types rm
group by
rm.hotel_id,
rm.name ) PreQuery
ON h.id=PreQuery.hotel_id
LIMIT
0,5
РЕДАКТИРОВАТЬ ПОЯСНЕНИЯ ...
Чтобы уточнить мой ответ.Вместо того, чтобы просто посчитать, сколько комнат вы хотели бы получить в каждом номере.В соответствии с вашей первоначальной перечисленной структурой у вас было «Имя» в качестве столбца, который теперь отображается как roomType_Name для ваших правок.Я подозревал, что в этой колонке описывается тип комнаты.Таким образом, мой внутренний запрос (в отличие от внутреннего соединения) говорит, что запрос должен предварительно агрегировать этот материал, группируя по критериям, и пусть его результаты будут называться псевдонимом «PreQuery» для условия соединения.ПОТОМ возвращаемся к основному отельному столу LEFT, соединенному с «PreQuery» на идентификаторе отеля.
Поскольку левое объединение в противном случае приведет к значениям NULL, если такие совпадения не найдены в какой-либо таблице «OTHER»,COALESCE () говорит ... Получите значение из параметра 1. Если это значение равно NULL, получите второе значение ... и поместите его в последний столбец запроса с именем ... RoomType или RoomTypeCount, как в этом примере.Таким образом, ваш конечный запрос не будет иметь никакого «NULL» как часть результата, но, по крайней мере, ожидается правильный тип данных (соответственно символ и число).