我有这3张桌子
users
,
user_info
,
attendances
示例数据如下:
用户表
|id|username| email | password |
|1 | user | email@email.com | hashedpassword |
|2 | user2 | email2@email.com| pw |
user_info表
|id| user_id| full_name | dob |
|1 | 1 | Pedro Dela Cruz | 1991-09-10 |
|2 | 2 | John Doe | 1987-05-25 |
出勤表
|id| user_id| log_date | log_time | status
|1 | 1 | 2018-08-17 | 06:36:36 | in
|2 | 3 | 2018-08-17 | 06:53:25 | in
|4 | 4 | 2018-08-17 | 06:36:36 | in
|5 | 5 | 2018-08-17 | 06:53:25 | in
我需要获取的是当日无人值守的用户列表
在这种情况下,ID为2
的用户当天没有出席。
我正在使用laravel,并且我使用了leftjoin来连接三个表,但是结果为零。
这就是我查询表格的方式
$absentees = DB::table('users as u')
->join('user_info as ud','ud.user_id','=','u.id')
->leftjoin('attendances as at','at.user_id','=','ud.user_id')
->select('ud.*','at.log_date','at.user_id','u.username')
->where('at.log_date','=', date('Y-m-d'))
->whereNull('u.deleted_at')
->whereNull('at.log_date')
->distinct()
->get();
感谢您的帮助
答案 0 :(得分:-1)