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
Libérer: 2024-12-09 13:49:11
original
832 Les gens l'ont consulté

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();
Copier après la connexion

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!

source:php.cn
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