Maison > développement back-end > tutoriel php > Comment implémenter le filtrage de sous-requêtes dans CodeIgniter à l'aide d'Active Record ou de la bibliothèque de sous-requêtes ?

Comment implémenter le filtrage de sous-requêtes dans CodeIgniter à l'aide d'Active Record ou de la bibliothèque de sous-requêtes ?

Barbara Streisand
Libérer: 2024-11-22 03:06:09
original
802 Les gens l'ont consulté

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

Filtrage de sous-requêtes dans CodeIgniter : une approche de création de requêtes

La tâche à accomplir consiste à traduire la requête SQL suivante dans la syntaxe d'enregistrement actif de CodeIgniter :

SELECT *
FROM certs
WHERE id NOT IN (SELECT id_cer FROM revokace);
Copier après la connexion

Cette requête récupère toutes les lignes de la table "certs" où le La colonne "id" n'est pas présente dans la sous-requête qui sélectionne "id_cer" dans la table "revokace".

Implémentation d'enregistrement actif

Le générateur de requêtes de CodeIgniter fournit une solution simple :

$this->db->select('*')
         ->from('certs')
         ->where('`id` NOT IN (SELECT `id_cer` FROM `revokace`)', NULL, FALSE);
Copier après la connexion

La méthode "where()" accepte une chaîne SQL brute comme premier argument, nous permettant d'incorporer le sous-requête directement dans la requête principale. Les deuxième et troisième arguments (NULL et FALSE) empêchent CodeIgniter d'échapper à la sous-requête, ce qui autrement interromprait la requête.

Extension de la bibliothèque de sous-requêtes

Vous pouvez également envisager d'utiliser l'option Bibliothèque de sous-requêtes :

$this->db->select('*')
         ->from('certs')
         ->subquery('where_in', function($subquery) {
             $subquery->select('id_cer')
                      ->from('revokace');
         }, 'id', FALSE);
Copier après la connexion

Cette technique fournit une solution plus concise et réutilisable pour incorporer des sous-requêtes dans les requêtes CodeIgniter.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal