$this->db->select('field1.id AS id1, field1.weight AS weight1, field2.id AS id2, field2.weight AS weight2') ->from('res_form_fields AS uj_field1') ->join('res_form_fields AS uj_field2', 'field2.form_id', 'field1.form_id') ->where('field1.id', $field_id) ->where('field2.weight > uj_field1.weight') ->limit(1) ->get(); +++++++ OUTPUT +++++++ SELECT `uj_field1`.`id` AS `id1`, `uj_field1`.`weight` AS `weight1`, `uj_field2`.`id` AS `id2`, `uj_field2`.`weight` AS `weight2` FROM `uj_res_form_fields` AS `uj_field1` JOIN (`uj_res_form_fields` AS `uj_field2`) ON (`uj_field2`.`form_id` = `uj_field1`.`form_id`) WHERE `uj_field1`.`id` = 2 AND uj_field2.weight > uj_field1.weight LIMIT 0, 1