我有以下查询:
select users.email, count(login_history.id) actions from users
left join group_memberships ON group_memberships.user_id = users.id
left join groups ON groups.id = group_memberships.group_id
left join organisation ON organisation.group_id = groups.parent_id
right join login_history ON login_history.user_id = users.id
where group_memberships.group_id = 564 AND ((MONTH(login_history.created_at) = MONTH(CURDATE()) AND YEAR(login_history.created_at) = YEAR(CURDATE())))
group by login_history.user_id
由于我想使用范围,我需要在Eloquent中使用此查询。我可以使用selectRaw和whereRaw这应该工作,但是使用Eloquent:Users模型和此查询的关系会更好吗?它甚至可能吗?
任何输入都非常赞赏。
答案 0 :(得分:1)
所有这些数据库操作都有详细记录here。可能是左连接。 你这样做(使用回调函数):
->leftJoin('category_lang', function( $join ) {
$join->on( 'category_lang.category_id', '=', 'do_hta_dirs.hd_pag_ID' );
$join->on( 'category_lang.lang_id', '=', 'do_hta_dirs.hd_dID' );
$join->on( 'category_lang.active', '=', DB::raw( '1' ) );
})