Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man die Unterabfragefilterung in CodeIgniter mithilfe von Active Record oder der Unterabfragebibliothek?
Unterabfragefilterung in CodeIgniter: Ein Query Builder-Ansatz
Die vorliegende Aufgabe besteht darin, die folgende SQL-Abfrage in die aktive Datensatzsyntax von CodeIgniter zu übersetzen:
SELECT * FROM certs WHERE id NOT IN (SELECT id_cer FROM revokace);
Diese Abfrage ruft alle Zeilen aus der Tabelle „certs“ ab Die Spalte „id“ ist in der Unterabfrage, die „id_cer“ aus der Tabelle „revokace“ auswählt, nicht vorhanden.
Aktive Datensatzimplementierung
Der Abfrage-Builder von CodeIgniter bietet eine unkomplizierte Lösung Lösung:
$this->db->select('*') ->from('certs') ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
Die Methode „where()“ akzeptiert einen rohen SQL-String als erstes Argument, was uns dies ermöglicht Integrieren Sie die Unterabfrage direkt in die Hauptabfrage. Das zweite und dritte Argument (NULL und FALSE) verhindern, dass CodeIgniter der Unterabfrage entkommt, was andernfalls die Abfrage unterbrechen würde.
Subquery Library Extension
Alternativ können Sie die Verwendung von in Betracht ziehen Unterabfragebibliothek:
$this->db->select('*') ->from('certs') ->subquery('where_in', function($subquery) { $subquery->select('id_cer') ->from('revokace'); }, 'id', FALSE);
Diese Technik bietet eine präzisere und wiederverwendbarere Lösung für die Einbindung Unterabfragen in CodeIgniter-Abfragen.
Das obige ist der detaillierte Inhalt vonWie implementiert man die Unterabfragefilterung in CodeIgniter mithilfe von Active Record oder der Unterabfragebibliothek?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!