Bạn có thể sử dụng cách truy vấn phụ của codeigniter để làm điều này vì mục đích này, bạn sẽ phải hack codeigniter. như thế này Chuyển đến system / database / DB_active_rec.php Xóa từ khóa công khai hoặc được bảo vệ khỏi các chức năng này
public function _compile_select($select_override = FALSE)
public function _reset_select()
Hiện đã có sẵn truy vấn con đang ghi và đây là truy vấn của bạn với bản ghi đang hoạt động
$select = array('DISTINCT c2_id','f_id','f_name');
$this->db->select($select);
$this->db->from('file');
$this->db->order_by('f_id','DESC');
$subQuery1 = $this->db->_compile_select();
unset($select);
$this->db->_reset_select();
$select = array('DISTINCT c2_id','f_id','f2_name');
$this->db->select($select);
$this->db->from('file2');
$this->db->order_by('f2_id','DESC');
$subQuery2 = $this->db->_compile_select();
unset($select);
$this->db->_reset_select();
// And now your main query
$select = array(
'c1.c1_id',
'c1.c1_name',
'c2.c2_id',
'c2.c2_name',
'c2.c2_type',
'c2.c2_status',
'f.f_id',
'f.f_name',
'f2.f2_id',
'f2.f2_name'
);
$this->db->select($select);
$this->db->from('category2 c2');
$this->db->join("($subQuery1)",'f.c2_id = c2.c2_id','left');
$this->db->join("($subQuery2)",'f2.c2_id = c2.c2_id','left');
$this->db->where('c2.c2_status',1);
$this->db->group_by('c2.c2_id');
$main_query = $this->db->get();
Và điều đã được thực hiện. Chúc mừng !!! Lưu ý:Trong khi sử dụng các truy vấn phụ, bạn phải sử dụng
$this->db->from('myTable')
thay vì
$this->db->get('myTable')
chạy truy vấn.
Bây giờ, bạn có thể kiểm tra truy vấn đã được tạo thành
echo $this->db->last_query();