我有两个表1(考勤)和2(考勤),我正在查询此表,以便使用时间字段按asc顺序获取出勤情况:
foreach ($employee_calendars as $key => $employee_calendar) {
$employee_calendar->attendance = Attendance::where("employee_id", $employee->id)
->whereDate("date", "=", $employee_calendar->date)
->orderBy('time', 'asc')
->with("requests")
->get();
}
问题是,当我的考勤表中的时间字段为null时,它将这些数据放在响应的顶部,如果为null,我想检查attendance_correction中的考勤检查attendance_correction字段是否存在出勤校正,下面是带有突出显示行的表图片,我在考勤表(attendance_correction表的请求)中也有关联:
public function requests()
{
return $this->hasMany("App\Models\AttendanceCorrection", "attendance_id");
}
发布于 2022-06-02 06:48:10
你可以这样做:
Attendance::select(['*', \DB::raw('IF(`time` IS NOT NULL, `time`, `attendance_correction.correct_time`) `correctTime`')])
->join->on('attendance_corrrection.attendence_id', '=', 'attendance.id');
->where("employee_id", $employee->id)
->whereDate("date", "=", $employee_calendar->date)
->orderBy('correctTime', 'asc')
->get();
https://stackoverflow.com/questions/72471385
复制相似问题