Yêu cầu thg 4 14, 2022 5:36 CH 158 1 1
  • 158 1 1
+1

laravel eloquent query ??

Chia sẻ
  • 158 1 1

E có một bảng users và một bảng user_activity quan hệ 1-n Giờ e muốn lấy danh sách user không có activity trong vòng 30 ngày đổ lại thì phải làm như nào ạ.

1 CÂU TRẢ LỜI


Đã trả lời thg 4 15, 2022 12:37 SA
Đã được chấp nhận
+3

Bạn có thể dùng NOT EXISTS trong SQL theo mẫu dưới đây hoặc dùng whereDoesntHave trong Query Builder của Laravel.

SELECT users.*
FROM users
WHERE NOT EXISTS (
  SELECT id
  FROM user_activity
  WHERE  users.id = user_activity.user_id AND user_activity.created_at >= ?
  LIMIT 1
)
$users = User::whereDoesntHave('user_activity', function($query) {
    return $query->whereRaw('user_activity.user_id = users.id')
       ->where('user_activity.created_at', '>=', today()->subDays(30));
});
Chia sẻ
Avatar Tú Trâm @Trungdao
thg 4 15, 2022 10:08 SA

cám ơn bạn nhé

thg 4 18, 2022 8:23 SA

@Trungdao không có gì.

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí