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

codeigniter mysql kiri gabung termasuk pilih

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

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

Dan hal itu dilakukan. Cheers!!!Catatan :Saat menggunakan sub kueri, Anda harus menggunakan

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

bukannya

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

yang menjalankan kueri.

Sekarang, Anda dapat memeriksa kueri yang telah dibuat sebagai

echo $this->db->last_query();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggabungkan rentang interval secara efisien dalam SQL

  2. Driver QMYSQL tidak dimuat di Windows

  3. MySQL Pilih kueri untuk mengambil basis data berdasarkan nilai daftar

  4. mysql ERROR 2002 (HY000):Tidak dapat terhubung ke server MySQL lokal melalui soket '/var/run/mysqld/mysqld.sock' (2)

  5. Tidak dapat mengeluarkan pernyataan manipulasi data dengan executeQuery()