that's what I'm thinking. I just thought maybe there was a more efficient way of doing it. This is what I have now and somehow it appears to work: [i] select * from (select p.project_id, p.project_name, p.project_client_id, wo.work_order_id, wo.work_order_name, t.task_id, t.task_modified, if (t.task_user_id=1,1,0) cur_user from projects p left join work_orders wo on wo.work_order_project_id=p.project_id left join tasks t on t.task_work_order_id=wo.work_order_id where p.project_active=1 order by p.project_name, t.task_modified desc) p, users u where p.project_client_id=u.user_client_id group by p.project_name order by p.cur_user desc, p.task_id, p.work_order_id, p.project_name[/i]