SELECT `b`.`*`, `i`.`count`
FROM (
SELECT `ib`.`id_brand` AS `brand`, COUNT(*) AS `count`
FROM `item_brand` AS `ib`
JOIN `item` AS `i` ON `i`.`enabled` = 1
AND `i`.`id_category` IN (21,317,318)
AND `i`.`id` = `ib`.`id_item`
GROUP BY `ib`.`id_brand`
) AS `i`
JOIN `brand` AS `b` ON `b`.`id` = `i`.`id_brand`
ORDER BY `i`.`count` DESC