postgresql7.1
select notification_id
from notifications
except
select distinct notification_id
from notifications inner join notification_requests using (type_id, object_id)
inner join acs_objects on (notification_requests.request_id = acs_objects.object_id)
left outer join notification_user_map using (notification_id, user_id)
where sent_date is null and creation_date <= notif_date
select notification_id,
notif_subject,
notif_text,
notif_html,
file_ids,
user_id,
type_id,
delivery_method_id,
response_id,
notif_date,
notif_user
from notifications inner join notification_requests using (type_id, object_id)
inner join acs_objects on (notification_requests.request_id = acs_objects.object_id)
left outer join notification_user_map using (notification_id, user_id)
where sent_date is null
and creation_date <= notif_date
and (notif_date is null or notif_date < current_timestamp)
and interval_id = :interval_id
and exists (select 1 from acs_object_party_privilege_map ppm
where ppm.object_id = notification_requests.object_id
and ppm.privilege = 'read'
and ppm.party_id = notification_requests.user_id)
order by user_id, type_id, notif_date