De eenvoudigste manier om ontbrekende datums te vinden, is door een kalendertabel te gebruiken. Ik heb code om een kalendertabel voor PostgreSQL te maken en in te vullen ; je zou het zonder problemen moeten kunnen aanpassen.
Met de kalendertabel op zijn plaats, is uw vraag vrij eenvoudig en gemakkelijk te begrijpen. Om de ontbrekende data voor oktober 2011 te vinden, zou je iets in deze richting gebruiken. (Graden naar je "posts"-tabel.)
select c.cal_date
from calendar c
left join posts p on (c.cal_date = p.date)
where p.date is null
and c.cal_date between '2011-10-01' and '2011-10-31'
and p.userid = 1
order by c.cal_date