Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Melaksanakan Pertanyaan PILIH dengan Subkueri NOT DALAM menggunakan Rekod Aktif CodeIgniter?

Bagaimana untuk Melaksanakan Pertanyaan PILIH dengan Subkueri NOT DALAM menggunakan Rekod Aktif CodeIgniter?

Barbara Streisand
Barbara Streisandasal
2024-11-26 11:35:11464semak imbas

How to Execute a SELECT Query with a NOT IN Subquery using CodeIgniter Active Record?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn