我需要生成一个用户未回答的票证表,在这种情况下是学生。我想直接在DB中制作过滤器,因为它依赖于其他过滤器,而且还有分页。
学生 | 门票 | 门票_评论 | |
---|---|---|---|
user_id | student_id | ticket_id | |
用户id |
过了一段时间,a找到了这个解决方案,这是主要的,但从这个例子中,任何人都可以做得更多。
$this->select('tickets.*')
->join('students', 'tickets.student_id', 'students.id')
->where('students.user_id', '!=', function ($query) {
$query->selectRaw('ticket_comments.user_id')
->from('ticket_comments')
->whereColumn('ticket_id', 'tickets.id')
->latest()
->limit(1);
})->orWhereDoesntHave('comments');