Maison >développement back-end >tutoriel php >Comment puis-je utiliser efficacement les sous-requêtes avec « WHERE IN » dans Laravel pour filtrer les données ?
Sous-requêtes avec la clause 'WHERE IN' dans Laravel
Dans Laravel, créer une sous-requête dans la clause 'WHERE IN' est un moyen efficace moyen de filtrer les résultats en fonction des données d’une table associée. Examinons un scénario spécifique :
Vous êtes chargé de récupérer des produits en fonction de leurs catégories. La requête doit inclure des colonnes telles que l'ID, le nom et le statut, et les produits doivent appartenir à des catégories spécifiques avec les ID « 223 » ou « 15 ».
Requête originale :
SELECT `p`.`id`, `p`.`name`, `p`.`img`, `p`.`safe_name`, `p`.`sku`, `p`.`productstatusid` FROM `products` p WHERE `p`.`id` IN ( SELECT `product_id` FROM `product_category` WHERE `category_id` IN ('223', '15') ) AND `p`.`active`=1
Utilisation équivalente à Laravel Fermeture :
Products::whereIn('id', function($query){ $query->select('paper_type_id') ->from(with(new ProductCategory)->getTable()) ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
Explication :
La fonction 'whereIn' prend une fermeture comme argument, vous permettant de définir la sous-requête à l'intérieur.
Avantages de l'utilisation Fermeture :
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!