SELECT
hc1.label AS country,
hc1.id AS country_id,
hc3.label AS city,
hc3.id AS city_id,
hh.id AS hotel_id,
hh.name AS name,
hh.catalog AS catalog
FROM `hotels_catalog` hc1
INNER JOIN `hotels_catalog` hc2 ON hc2.parent_id = hc1.id
INNER JOIN `hotels_catalog` hc3 ON hc3.parent_id = hc2.id
-- error
-- Вот проблема ---> hh.catalog = hc3.id
LEFT JOIN `hotels_hotels` hh ON hc3.id = hh.catalog
-- end
WHERE
hc1.level = 1
&& hc1.label = 'Canada'
&& hc2.level = 2
&& hc3.level = 3
&& hh.id is NULL
GROUP BY hc3.id
ORDER BY hc1.label,
hc3.label