我有示例代码,用于获取当前用户的所有垃圾邮件:
$query1 = $inbox->where('recipient', $user_id)
->where('trashed_in_recipient', 1)
->where('show_in_recipient', '!=', 1)
->orderBy('created_at', 'desc')
->paginate($paginate);
$query2 = $inbox->where('sender', $user_id)
->where('trashed_in_sender', 1)
->where('show_in_sender', '!=', 1)
->orderBy('created_at', 'desc')
->paginate($paginate);
如何将两个查询合二为一并得到最终结果?
表结构:
最佳答案
您可以使用函数来定义WHERE
组:
$query = $inbox->where(function($query) use ($user_id) {
$query->where('recipient', $user_id);
$query->where('trashed_in_recipient', 1);
$query->where('show_in_recipient', '!=', 1);
})->orWhere(function($query) use ($user_id) {
$query->where('sender', $user_id);
$query->where('trashed_in_sender', 1);
$query->where('show_in_sender', '!=', 1);
})->orderBy('created_at', 'desc')
->paginate($paginate);
希望对你有帮助
关于php - Laravel:如何在一个查询中编写两个查询并从数据库获取结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48265574/