помимо того факта, что ваш собственный запрос неверен, потому что нет tickerr_users table
- ваши псевдонимы называются tickerr_users1
и tickerr_users2
,
правильным решением будет использование встроенного построителя запросов
что-то вроде следующего должно работать
$query = $this->db
->select('tickerr_tickets.*, tickerr_users2.name as agent_name, tickerr_ticket_departments.name as department_name, CASE WHEN guest_name != \'\' THEN guest_name ELSE tickerr_users1.name END AS client_final_name', false)
->from('tickerr_tickets')
->join('tickerr_ticket_departments', 'tickerr_tickets.department=tickerr_ticket_departments.id','inner')
->join('tickerr_users as tickerr_users1', 'tickerr_tickets.userid = tickerr_user1.id', 'left')
->join('tickerr_users as tickerr_users2', 'tickerr_tickets.agentid = tickerr_users2.id', 'left')
->where('status', 1)
->where('agentid !=', 0)
->group_start()
->like('tickerr_tickets.id', $search)
->or_like('tickerr_tickets.date', $search)
->or_like('tickerr_tickets.date', $search)
->or_like('tickerr_tickets.last_update', $search)
->or_like('tickerr_tickets.subject', $search)
->or_like('tickerr_tickets.content', $search)
->or_like('tickerr_ticket_departments.name', $search)
->or_like('tickerr_users1.username', $search)
->or_where('(CASE WHEN guest_name != \'\' THEN guest_name ELSE tickerr_users.name END) LIKE '.$this->db->escape('%'.$search.'%').'', NULL, false)
->group_end()
->order_by($order_by)
->limit($rows, $starting)
->get();