You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel多表关联查询如何获取包含coordinator_status为null的所有数据

问题原因

你当前使用的是默认**内连接(INNER JOIN)**关联status表,只有当courselist.coordinator_status和status.id存在匹配值时才会返回对应记录,所以coordinator_status为null的记录会被直接过滤掉,无法出现在结果集中。

调整方案

只需要将status表的关联方法从join改为leftJoin即可,左连接会完整保留左表courselist的所有符合条件的记录,哪怕右表status没有匹配的关联数据:

$coordetails = DB::table('courselist')
                        ->join('users','users.id','=','courselist.coordinator')
                        // 替换为左连接
                        ->leftJoin('status','status.id','=','courselist.coordinator_status')
                        ->select('courselist.id','users.name','status.status')
                        ->where('courselist.faculty_id','=',$facultyid)
                        ->get();

补充说明

调整后查询结果中,原本coordinator_status为null的记录对应的status字段也会返回null,如果你需要给这类空值设置默认展示文案,可以修改select部分的写法:

->select('courselist.id','users.name', DB::raw("COALESCE(status.status, '未设置') as status"))

上述写法会自动将空的status值替换为未设置,你可以根据业务需求修改默认值内容。

内容的提问来源于stack exchange,提问作者user17298617

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:36:07