Laravel 4 - 加入表但只有最新行

标签 laravel laravel-4 eloquent

我有 2 个表:报价、回复。

在数据表中,我显示引号,并且对于每一行,我显示响应的列数。我现在想显示最新回复的日期,但我被阻止了:(

这是我的代码:

$quotes = Quote::select('Quotes.*', DB::raw('COUNT(Responses.id) as total_responses') )
    ->leftjoin('Responses', function($join)
    {
        $join->on('Responses.quote_id', '=', 'Quotes.id')
        ->where('Responses.state', '!=', '0');
    })
    ->groupby('Quotes.id');

是否可以使用同一个表添加另一个左连接,使用自定义查询仅选择最新行?

谢谢你的帮助

最佳答案

您可以使用原始 MAX功能。假设您的日期已存储 Responses.date ,代码看起来像这样

$quotes = Quote::select('Quotes.*', DB::raw('COUNT(Responses.id) as total_responses'), DB::raw('MAX(CAST(Responses.date AS CHAR)) as latest') )
    ->leftjoin('Responses', function($join) {
        $join->on('Responses.quote_id', '=', 'Quotes.id')
        ->where('Responses.state', '!=', '0');
    })
    ->groupby('Quotes.id');

由于 mysql 错误 https://bugs.mysql.com/bug.php?id=54784 首先必须将其转换为字符

关于Laravel 4 - 加入表但只有最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37642825/

相关文章:

php - 如何使用 Laravel Eloquent 插入多个子记录和父记录

Laravel Eloquent 多数据库

laravel - 合并 Eloquent 中belongsToMany 和belongsTo 关系的结果

php - 命名空间更改后的 Laravel link_to_route

netbeans - 在 Netbeans 中为 Laravel 4 启用自动完成功能

php - Laravel 4 - 读取配置文件

php - Eloquent 模型事件在使用 create 时被保存和创建?

php - SQLSTATE [HY000] [1049] 未知数据库 'laravel'

javascript - 尝试通过 AJAX 验证 Laravel Form 时出现错误 422

installation - Laravel 4 中的 session ID 太长或包含非法字符