Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Ubah kueri mysql bersarang menjadi gaya codeigniter

Anda dapat menggunakan cara sub query codeigniter untuk melakukan ini untuk tujuan ini Anda harus meretas codeigniter. seperti iniBuka system/database/DB_active_rec.php Hapus kata kunci publik atau yang dilindungi dari fungsi ini

public function _compile_select($select_override = FALSE)
public function _reset_select()

Sekarang penulisan subquery tersedia Dan sekarang inilah kueri Anda dengan catatan aktif

$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');

Saya telah memasukkan keduanya dalam suka yang dapat Anda lakukan sesuai dengan kebutuhan Anda. Catatan:Saat menggunakan sub kueri, Anda harus menggunakan

$this->db->from('myTable')

bukannya

$this->db->get('myTable')

yang menjalankan kueri.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:Bagaimana saya bisa mendapatkan stempel waktu penyisipan terakhir ke database

  2. Mendukung pernyataan yang disiapkan sisi server dengan PDO?

  3. Bagaimana saya bisa melakukan FULL OUTER JOIN di MySQL?

  4. Tabel MySQL tidak ada kesalahan, tetapi memang ada

  5. Bagaimana saya bisa memilih baris yang berdekatan di sql ketika dipesan oleh bidang yang berbeda?