Най-простият начин да намерите липсващи дати е да използвате календарна таблица. Публикувах код за създаване и попълване на календарна таблица за PostgreSQL ; трябва да можете да го адаптирате без проблеми.
С календарната таблица на място, вашата заявка е доста проста и лесна за разбиране. За да намерите липсващите дати за октомври 2011 г., бихте използвали нещо в този смисъл. (Отгатване на таблицата ви с публикации.)
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