Mysql sql to Elounce-嵌套选择以应用分组依据

Mysql sql to Elounce-嵌套选择以应用分组依据,mysql,eloquent,nested-queries,Mysql,Eloquent,Nested Queries,我想用雄辩的语言进行以下查询 SELECT * FROM ( select `id`, `category`, `name`, `slug`, `value`, `value_validation`, `value_type`, `created_at` from `configurations` order by `creat

我想用雄辩的语言进行以下查询

SELECT * FROM (
    select
        `id`,
        `category`,
        `name`,
        `slug`,
        `value`,
        `value_validation`,
        `value_type`,
        `created_at`
    from
        `configurations` 
    order by `created_at` desc
) as `a` GROUP BY a.slug;
基本上,我需要在数据库中存储所有配置的历史记录。因此不会使用更新的_at字段,而是在每次更新配置时创建新行。然后将不再使用旧配置,并始终应用最新配置

slug不是唯一的。但我的目的是让小组成员发表声明,以确保我得到一个独特的弹头

我希望能够利用Eloquent的所有优点——因此,我理想上想要一个Eloquent对象,而不是查询生成器对象

这是我到目前为止得到的,它生成了内部查询。现在我需要做的就是修改它以应用外部查询

$configurations = $this->configuration
    ->orderBy('created_at', 'DESC')
    ->get();

预期的结果是什么?您正在选择所有列,但仅按slug分组,不能保证您将获得最新的行,结果将是undetermined@fthiella-预期的结果是,我有一个雄辩的查询,可以执行上面解释的确切sql查询。保证是我首先在desc创建了_,这意味着我的结果顺序正确。当我在外部查询中应用group by时,我将始终获得组中的第一个项目-确保我有最新的结果。因此,当我在创建时订购,然后应用组时,我总是会得到最新版本。问题是此功能没有文档记录,而且被认为是不好的做法,无法保证您将获得组中的第一项,优化器可能会选择返回不同的行,而不总是返回第一项