Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Chuyển đổi truy vấn mysql lồng nhau thành kiểu codeigniter

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.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách cài đặt com.mysql.jdbc.Driver Không thể tìm thấy trình điều khiển có tên lớp:com.mysql.jdbc.Driver?

  2. Đặt lại tự động tăng ID? phpmyadmin

  3. Ngày và giờ gần nhất tiếp theo trong MySQL

  4. Không thể chuyển tham số bằng tham chiếu trong MySQLi

  5. Độ dài tối đa của dữ liệu tôi có thể đặt trong cột BLOB trong MySQL là bao nhiêu?