【问题标题】:How to make querys from subqueries on Eloquent/Laravel如何在 Eloquent/Laravel 上查询子查询
【发布时间】:2014-05-12 05:42:46
【问题描述】:

我有一个名为 posts 的表和另一个名为 users 的表。表posts有一个字段user_id。

我需要获取最后三个注册用户的最后一个帖子。我尝试过这样的事情:

Post::with('user')->groupBy('user_id')->orderBy('id','desc')->take(3)->get();

结果接近我需要的,但不完全是,因为我正在获取最后三个注册用户的第一个帖子。

因此,我需要知道如何使用 Eloquent 制作这样的东西:

SELECT * FROM (SELECT * FROM posts ORDER BY id DESC)sub GROUP BY user_id LIMIT 3;

我不想使用原始查询,因为如您所见,我也需要检索 User 对象。

【问题讨论】:

    标签: php sql laravel eloquent


    【解决方案1】:

    您也可以使用原始查询并检索用户对象

    Post::with('user')
    ->from(DB::raw('(SELECT * FROM posts ORDER BY id DESC)sub'))
    ->groupBy('user_id')->take(3)->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-20
      • 2019-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-22
      • 1970-01-01
      相关资源
      最近更新 更多