Maison > développement back-end > tutoriel php > Comment optimiser les requêtes Laravel à l'aide de sous-requêtes dans les clauses WHERE IN ?

Comment optimiser les requêtes Laravel à l'aide de sous-requêtes dans les clauses WHERE IN ?

Barbara Streisand
Libérer: 2024-12-09 13:46:18
original
700 Les gens l'ont consulté

How to Optimize Laravel Queries Using Subqueries in WHERE IN Clauses?

Sous-requête dans Laravel WHERE IN Clause

Dans Laravel, la création d'une requête qui récupère les données où le champ ID est inclus dans une sous-requête peut être atteint efficacement. Bien qu'une opération JOIN suffise également, cet article se concentre sur l'optimisation des performances en utilisant une sous-requête dans la clause WHERE IN.

Considérez la requête suivante :

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

Pour répliquer cette requête dans Laravel , utilisez le code suivant :

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

En incorporant une sous-requête dans la clause WHERE IN, cette instruction exécute efficacement l'opération de recherche et de récupération requise. Cette approche est particulièrement bénéfique pour les applications sensibles aux performances où la minimisation des appels à la base de données est cruciale.

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