Terkadang untuk menampilkan data dari database dibutuhkan query yang bertingkat atau query dalam query, hal ini sangat susah di hindari apalagi jika terdapat field yang kompleks pada database. dan masalahnya codiegniter tidak menyedikan subquery pada active record. jadi paling tidak kita harus sedikit memodifikasi active record codiegniter untuk melakukan sub query.
Sub query digunakan untuk menampilkan tabel berdasarkan value tabel lainnya, Sebagai contoh jika menggunakan php biasa menggunakan query mysql seperti ini
untuk coidegniter active record
Cara lain bisa menggunakan library ini
Sub query digunakan untuk menampilkan tabel berdasarkan value tabel lainnya, Sebagai contoh jika menggunakan php biasa menggunakan query mysql seperti ini
SELECT * FROM employees WHERE id IN(SELECT id FROM employees_backup);
untuk coidegniter active record
// Sub Query $this->db->select('id')->from('employees_backup'); $subQuery = $this->db->get_compiled_select(); // Main Query $this->db->select('*') ->from('employees') ->where("id IN ($subQuery)", NULL, FALSE) ->get() ->result();
Cara lain bisa menggunakan library ini
$this->db->select('*')->from('certs'); $sub = $this->subquery->start_subquery('where_in'); $sub->select('id_cer')->from('revokace'); $this->subquery->end_subquery('id', FALSE);