首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检查一个表字段是否为空,从其他表字段选择数据并按其进行排序

如何检查一个表字段是否为空,从其他表字段选择数据并按其进行排序
EN

Stack Overflow用户
提问于 2022-06-02 06:06:43
回答 1查看 40关注 0票数 0

我有两个表1(考勤)和2(考勤),我正在查询此表,以便使用时间字段按asc顺序获取出勤情况:

代码语言:javascript
运行
复制
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表的请求)中也有关联:

代码语言:javascript
运行
复制
public function requests()
{
    return $this->hasMany("App\Models\AttendanceCorrection", "attendance_id");
}

校正表

考勤表

EN

回答 1

Stack Overflow用户

发布于 2022-06-02 06:48:10

你可以这样做:

代码语言:javascript
运行
复制
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(); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72471385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档