select distinct(candidates.id) as cid, first_name, last_name, direct_line, offices.phone_number, subscriptions.id, countries.name, callbacks.date from candidates left join subscriptions on candidates.id = subscriptions.candidate_id join offices on candidates.office_id = offices.id join countries on offices.country_id = countries.id left join callbacks on callbacks.candidate_id = candidates.id where subscriptions.id is null and candidates.is_included = 1 and candidates.editorial_board = 0 and candidates.flag_moved = 0 and not (candidates.id = 27828 or candidates.id = 28386 or candidates.id = 28133 or candidates.id = 28469) and not (phone_number = '' AND direct_line = '') and candidates.flag_for_delete = 0 and countries.mail_zone = 1 and candidates.id not in (select candidates.id from candidates, callbacks where candidates.id = callbacks.candidate_id and callbacks.flag_subscription = 1 and candidates.is_included = 1 and callbacks.date >= now()) group by candidates.id order by #{order} limit #{start}, 1000