在 Laravel eloquent 中应用左连接。
Posted
技术标签:
【中文标题】在 Laravel eloquent 中应用左连接。【英文标题】:Apply Left Join in Laravel eloquent. 【发布时间】:2014-05-13 10:52:16 【问题描述】:我有以下 sql 查询-
SELECT
viewtasksactivitiesprojects.task_name,
users.firstname,
users.lastname
FROM
viewtasksactivitiesprojects
LEFT JOIN users
ON (viewtasksactivitiesprojects.activitytask_owner_id=users.id)
WHERE
activitytasks_active=1
AND activity_status=5
AND activitytask_id IN
(
SELECT
activitytask_id
FROM
Activitytasks
WHERE
activity_id=26 AND active=1
AND task_status=8
)
我正在使用 Laravel 框架,我想在其中将此查询转换为 laravel eloquent 格式。 但是我在某种程度上实现了相同的目标,但我无法实现查询的“加入”部分。 任何人都可以建议我如何在 laravel eloquent 中实现左连接。 还有一件事是laravel中有任何方法可以直接传递sql格式的查询。
【问题讨论】:
【参考方案1】:我得到了答案-
DB::table('viewtasksactivitiesprojects')->leftJoin('Users',function($join)
$join->on('viewtasksactivitiesprojects.activitytask_owner_id','=','users.id');
)->whereIn('activitytask_id',function($query) use($id)
$query->select('activitytask_id')
->from(with(new Activitytask)->getTable())
->where('activity_id', '=', $id)->where('active','=',1)->where('task_status','=',8);
)->where('activitytasks_active','=',1)->where('activity_status','=',5)->get(array('viewtasksactivitiesprojects.task_name','users.firstname', 'users.lastname','users.id'));
【讨论】:
将您的答案标记为答案,这样它就不会显示为未回答的问题。以上是关于在 Laravel eloquent 中应用左连接。的主要内容,如果未能解决你的问题,请参考以下文章
如何将左连接横向 SQL 查询转换为 Laravel Eloquent 查询?
Laravel 6,MYSQL - 如何使用 Laravel Querybuilder 或 Model Eloquent 将子查询与 GroupBY 左连接?
Laravel/Eloquent 分页和 groupBy 用于 postgres 物化视图模型