Heim >Backend-Entwicklung >PHP-Tutorial >Wie implementiert man die Unterabfragefilterung in CodeIgniter mithilfe von Active Record oder der Unterabfragebibliothek?

Wie implementiert man die Unterabfragefilterung in CodeIgniter mithilfe von Active Record oder der Unterabfragebibliothek?

Barbara Streisand
Barbara StreisandOriginal
2024-11-22 03:06:09771Durchsuche

How to Implement Subquery Filtering in CodeIgniter using Active Record or the Subquery Library?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn