使用 Laravel 实现带有 WHERE IN 子句的子查询
您请求了一种使用子查询来执行特定 SQL 查询的方法Laravel 框架中的 WHERE IN 子句。让我们探讨一下如何实现这一点:
Laravel 查询生成器
Laravel 查询生成器提供了用于构造 SQL 查询的优雅语法。要执行提供的查询,您可以使用以下代码:
$productIds = ProductCategory::whereIn('category_id', ['223', '15'])->pluck('product_id'); $products = Product::where('active', 1)->whereIn('id', $productIds)->get();
基于闭包的子查询
或者,您可以使用基于闭包的子查询子查询:
Products::whereIn('id', function($query){ $query->select('product_id') ->from('product_category') ->whereIn('category_id', ['223', '15']) ->where('active', 1); }) ->get();
解释:
性能注意事项:
您指出性能是一个问题,使用子查询确实适合提高效率。基于闭包的方法稍微复杂一些,但可能会带来一些性能优势。
以上是如何在 Laravel 中使用 WHERE IN 高效实现子查询?的详细内容。更多信息请关注PHP中文网其他相关文章!