我有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,它首先必须被转换为char