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 Đi tới hệ thống / cơ sở dữ liệu / 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
$data = array(
'COUNT(B.event) AS Calls',
'B.ID'
);
$this->db
->select($data)
->from('TableB AS B')
->like('B.event','call','both')
->where('`Time` >=',1360540800)
->where('`Time` <=',1361232000)
->group_by('B.ID');
$subQuery = $this->db->_compile_select();
$this->db->_reset_select();
unset($data);
$data = array(
'A.ID',
'A.fName',
'A.lName',
'COALESCE (B.calls, 0) AS Calls'
);
$this->db
->select($data)
->from('TableA AS A')
->join("$subquery")
->like('A.State','SENT','both')
->or_like('A.State','SET','both');
Tôi đã đưa cả hai mục thích mà bạn có thể làm theo yêu cầu của mình. 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.