explain select u.name, p.session_id, p.post_number, to_char(p.time,'Dy, Mon DD YYYY HH:MIam ET'), p.time from ( select p.poster_id, p.session_id, p.post_number, p.time from chat_post p where p.time = '1997-12-31 19:00:00-05' and p.post_number > 71 -- narrow further the where clause and exists (select 1 from chat_user u where u.id = p.poster_id and ( u.lower_name = 'bacon' )) order by p.time limit 101 ) p, chat_user u where u.id = p.poster_id union all select u.name, p.session_id, p.post_number, to_char(p.time,'Dy, Mon DD YYYY HH:MIam ET'), p.time from ( select p.poster_id, p.session_id, p.post_number, p.time from chat_post p where p.time > '1997-12-31 19:00:00-05' and p.time <= '2002-11-08 19:00:00-05' -- narrow further the where clause and exists (select 1 from chat_user u where u.id = p.poster_id and ( u.lower_name = 'bacon' )) order by p.time limit 101 ) p, chat_user u where u.id = p.poster_id order by time, post_number limit 101 ;