Maison >base de données >tutoriel mysql >Comment puis-je sélectionner efficacement les données d'une sous-requête à l'aide du générateur de requêtes de Laravel ?
Lorsque vous utilisez Eloquent ORM et le générateur de requêtes Laravel, vous pouvez rencontrer des scénarios dans lesquels vous devez récupérer des données basées sur une sous-requête. Cette question explore comment utiliser efficacement le générateur de requêtes Laravel pour sélectionner des données à partir d'une sous-requête.
Comme mentionné dans l'exemple de code fourni, l'approche initiale consiste à utiliser plusieurs générateurs de requêtes pour créer et exécuter des sous-requêtes. Cependant, les utilisateurs recherchent des solutions plus simples et plus efficaces.
La meilleure solution n'est pas d'utiliser plusieurs générateurs de requêtes chaînés, mais d'utiliser des instructions SQL brutes dans la clause FROM
. Cela permet d'exprimer des sous-requêtes directement dans les requêtes Laravel :
<code class="language-php">$sql = Abc::where(...)->groupBy(...)->toSql(); $num = DB::table(DB::raw("($sql) AS sub"))->count(); print $num;</code>
Bien que cette solution sélectionne efficacement les données d'une sous-requête, il est important de prendre en compte les éléments suivants :
La solution améliorée offre un moyen plus simple et plus efficace de sélectionner des données à partir d'une sous-requête à l'aide du générateur de requêtes Laravel. En incluant du SQL brut dans la clause FROM
et en gérant soigneusement la liaison des requêtes, vous pouvez obtenir la récupération de données souhaitée de manière concise et efficace.
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!