我有两个表用户和付款
用户表如下:
id
fisrtname
lastname
付款表如下:
id
users_id
receiver_id
注意:用户表也是接收者表。
我想要列出已付款但未收到任何付款的用户列表
答案 0 :(得分:1)
请尝试我的解决方案:
class User extends Authenticatable {
...
public function payments()
{
return $this->hasMany(Payment::class, 'users_id');
}
}
$users = \App\User::query()->getModel();
$users = $users->whereHas('payments', function ($query) {
/** @var Builder $query */
$query->havingRaw('COUNT(*) = 1');
})->whereNotExists(function ($query) {
/** @var Builder $query */
$query->select(['receiver_id'])
->from('payments')
->whereRaw('users.id = payments.receiver_id');
})->get();