Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Melaksanakan Pertanyaan PILIH dengan Subkueri NOT DALAM menggunakan Rekod Aktif CodeIgniter?
Rekod Aktif CodeIgniter: Melaksanakan Pertanyaan PILIH dengan Subkueri NOT IN
Dalam senario ini, anda ingin mendapatkan semula semua baris daripada ' jadual sijil yang tidak terdapat dalam jadual 'revokasi'. Sintaks SQL konvensional untuk pertanyaan ini ialah:
SELECT * FROM certs WHERE id NOT IN (SELECT id_cer FROM revokace);
Untuk mencapai ini menggunakan corak Rekod Aktif CodeIgniter, anda boleh menggunakan kaedah '->where()'. Walau bagaimanapun, adalah penting untuk mengendalikan kemungkinan konflik dengan aksara khas dalam pertanyaan anda.
Penyelesaian:
Kaedah '->where()' CodeIgniter menyokong dengan mudah menghantar pertanyaan tersuai rentetan terus ke pangkalan data. Ini membolehkan anda menulis pertanyaan anda sebagai:
$this->db->select('*') ->from('certs') ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
Dalam pertanyaan ini, argumen 'NULL,FALSE' memastikan bahawa CodeIgniter tidak melakukan sebarang pelarian, memelihara integriti subkueri anda.
Alternatif Pilihan:
Untuk pengoptimuman kod selanjutnya, pertimbangkan untuk menggunakan Pustaka Subquery CodeIgniter. Ia memudahkan penciptaan subquery dengan menyediakan antara muka khusus. Pertanyaan anda menggunakan Pustaka Subquery akan kelihatan seperti ini:
$this->db->select('*') ->from('certs'); $sub = $this->subquery->start_subquery('where_in') ->select('id_cer') ->from('revokace'); $this->subquery->end_subquery('id', FALSE);
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan PILIH dengan Subkueri NOT DALAM menggunakan Rekod Aktif CodeIgniter?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!