I tried to do a IFNULL(count(),0) , or IF (count() > 0, count(*),0), but it doesn't work, my row "counter" display "NULL" instead of 0 :/
Here is my query:
SELECT IF(fc.counter > 0, fc.counter, 0) counter, b.*, fc.* FROM client_branche cb INNER JOIN branche b On b.id = cb.branche_id LEFT OUTER JOIN (
SELECT count(*) as counter, ctn_b.branche_id as b_id
FROM `historique` h
INNER JOIN contenu_branche ctn_b ON ctn_b.contenu_id = h.contenu_id
INNER JOIN utilisateur u ON u.id = h.utilisateur_id
WHERE h.h_fini = 1 AND ( u.client_id = 1 OR u.client_id = 0 ) AND h.h_dateheure BETWEEN '2015-12-24' AND '2015-12-30'
group by ctn_b.`branche_id`)
fc ON fc.b_id = cb.branche_id WHERE cb.client_id = 1
So i tried to do that :
SELECT IF(fc.counter > 0, fc.counter, 0) counter, b.*, fc.* FROM client_branche cb INNER JOIN branche b On b.id = cb.branche_id LEFT OUTER JOIN (
SELECT IFNULL(count(*),0) as counter, ctn_b.branche_id as b_id
FROM `historique` h
INNER JOIN contenu_branche ctn_b ON ctn_b.contenu_id = h.contenu_id
INNER JOIN utilisateur u ON u.id = h.utilisateur_id
WHERE h.h_fini = 1 AND ( u.client_id = 1 OR u.client_id = 0 ) AND h.h_dateheure BETWEEN '2015-12-24' AND '2015-12-30'
group by ctn_b.`branche_id`)
fc ON fc.b_id = cb.branche_id WHERE cb.client_id = 1
Annnnd i failed. I hope someone will help me. Thanks a lot in advance, and sorry for my bad english, it's not my native language :)