Bonjour,
Effectivement le bug a été remonté sur la 11.
Il est corrigé dans la 12 qui sort incessamment sous peu
$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS('
SELECT cl.*,c.*, cl.`name` AS country, zz.`name` AS zone
FROM `'._DB_PREFIX_.'country` c'.
Shop::addSqlAssociation('country', 'c').'
INNER JOIN `'._DB_PREFIX_.'country_lang` cl
ON(c.`id_country` = cl.`id_country`
AND cl.`id_lang` = '.(int)$id_lang.')
INNER JOIN `'._DB_PREFIX_.'carrier_zone` cz
ON(cz.id_zone = c.id_zone)
INNER JOIN `'._DB_PREFIX_.'carrier` cr
ON(cr.id_carrier = cz.id_carrier
AND cr.deleted = 0 '.
($active_carriers ? '
AND cr.active = 1) ' : ') ').'
LEFT JOIN `'._DB_PREFIX_.'zone` zz
ON(cz.id_zone = zz.id_zone
AND zz.`id_zone` = c.`id_zone`)
WHERE 1
'.($active_countries ? '
AND c.active = 1' : '').'
'.(!is_null($contain_states) ? '
AND c.`contains_states` = '.(int)$contain_states : '').'
GROUP BY c.`id_country`
ORDER BY cl.`name` ASC
');
Et non, le distinct n'est plus utile.