Maison >base de données >tutoriel mysql >Comment récupérer efficacement les données produit dans Laravel à l'aide d'une sous-requête dans « WHERE IN » ?

Comment récupérer efficacement les données produit dans Laravel à l'aide d'une sous-requête dans « WHERE IN » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 13:49:11816parcourir

How to Efficiently Retrieve Product Data in Laravel Using a Subquery in `WHERE IN`?

Sous-requête Laravel WHERE IN :

Vous recherchez un moyen performant de récupérer les données produit de la table products dans Laravel, en utilisant une sous-requête pour spécifier les valeurs product_id à inclure. Bien qu'une alternative de jointure existe, vous préférez une approche basée sur des sous-requêtes à des fins d'optimisation.

Solution :

Vous trouverez ci-dessous le code qui répond à vos besoins, en exploitant les sous-requêtes au sein du où clause :

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 requête commence par une base de modèle Products, qui représente la table cible à partir de laquelle nous souhaitons récupérer des données.
  • La clause WhereIn est utilisée, spécifiant la colonne id de la table
    products comme colonne à évaluer.
  • Une fermeture imbriquée est utilisée pour définir la sous-requête. Dans cette fermeture, nous sélectionnons le paper_type_id dans une table temporaire créée à l'aide de with(new ProductCategory)->getTable().
  • La sous-requête applique ensuite les filtres nécessaires, notammentwhereIn('category_id', ['223 ', '15']) pour restreindre les résultats à des catégories spécifiques et où('active', 1) pour inclure uniquement les actifs produits.
  • Enfin, l'intégralité de la requête est exécutée à l'aide de get(), récupérant efficacement les données produit souhaitées.

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:
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