# Count rowsSELECT count(distinct(properties.id)) count FROM (amenities JOIN (properties JOIN rates ON (rates.property_id = properties.id))) LEFT JOIN properties_to_amenities ON ( amenities.id=properties_to_amenities.amenity_id AND properties.id=properties_to_amenities.property_id ) WHERE properties.location_id = 46 AND amenities.name IN ('BBQ','Airconditioned','Carport') AND (rates.nightly_rate >= 100 AND rates.nightly_rate <= 200) GROUP BY properties.id HAVING COUNT(if(properties_to_amenities.property_id IS NULL, 1, null))=0;# The above query returns unhelpful output like+-------+| count |+-------+| 1 | | 1 | | 1 | | 1 | +-------+4 rows in set (0.00 sec)