Tabella ORE
data_id | utente_id |causale_id| ordin. | straor. | permessi | mutua

Tabella CALENDARIO
data | chiusura

Ora vorrei ottenere una pagina con tutti i giorni del mese (lavorati e no), e le ore fatte per ogni giorno lavorato.

Ora con questa query ottengo un casino, ripetizioni:

$sql = "SELECT *
FROM calendario AS a
LEFT JOIN ore AS b ON
(b.utente_id = '$id_cognome' AND MONTH(b.data_id) = '$id_mese' )
WHERE MONTH(a.data) = '$id_mese'
ORDER BY a.data";
Codice PHP:
a.data         b.data        o s p m
2005
-01-01    2005-01-05    1 2 2 2     
2005
-01-01    2005-01-06    1 1 5 5     
2005
-01-02    2005-01-05    1 2 2 2     
2005
-01-02    2005-01-06    1 1 5 5     
2005
-01-03    2005-01-05    1 1 5 5     
2005
-01-03    2005-01-06    1 2 2 2 
etc
...

Invece vorrei ottenere

a
.data         b.data        o s p m
2005
-01-01    -             0 0 0 0     
2005
-01-02    -             0 0 0 0     
2005
-01-03    -             0 0 0 0     
2005
-01-04    -             0 0 0 0     
2005
-01-05    2005-01-05    8 2 0 0     
2005
-01-06    2005-01-06    4 0 4 0     
2005
-01-07    -             0 0 0 0 
etc
... 

Scusate la lunghezza del post, ma se qualcuno può darmi una mano ne sarei felice.
grazie