最佳答案
好吧,经过几个小时的研究,仍然使用 DB: : select 我必须问这个问题。因为我要把我的电脑扔掉;)。
我想获取用户的最后一个输入(基于时间戳)。我可以用原始的 sql 做这个
SELECT c.*, p.*
FROM users c INNER JOIN
(
SELECT user_id,
MAX(created_at) MaxDate
FROM `catch-text`
GROUP BY user_id
) MaxDates ON c.id = MaxDates.user_id INNER JOIN
`catch-text` p ON MaxDates.user_id = p.user_id
AND MaxDates.MaxDate = p.created_at
我从另一篇关于堆栈溢出的 给你文章中得到了这个查询。
我在 Laravel 用流畅的查询构建器尝试了各种方法,但都没有成功。
我知道手册上说你可以这么做:
DB::table('users')
->join('contacts', function($join)
{
$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
})
->get();
但是这没有多大帮助,因为我不知道如何在那里使用子查询? 谁能点亮我的一天?