Laravel 如何使用ORM实现同服务器跨库连表

Laravel 如何使用ORM实现同服务器跨库连表

       最近因为考虑到数据非常多,之前开发的功能没考虑到这一点,所以必须用到联表查询的方式进行关联查询获取数据,但是由于两个数据表有点特殊,在不同数据库,所以我也百度谷歌了一番,看到最多就是用模型关联,但是用起来达不到自己要的效果,所以我有点怀疑是不是复制粘贴就发出来,最终在一篇技术文章找到灵感,最后成功解决这个问题,下面直接贴出代码

//获取起始日期、结束日期
$whereStart = date('Y-m-d H:i:s', strtotime($day));
$whereEnd = date('Y-m-d H:i:s', (strtotime($value) + 60 * 60 * 24));
//关联查询
$db_crm = 'users';
$newCount = \App\Models\JFLogModel::leftJoin($db_crm . '.userlist', 'userlist.uid', 'jf_log.open_id')
    ->where($db_crm . '.userlist.' . 'create_at', '>=', $whereStart)->where($db_crm . '.userlist.' . 'create_at', '<', $whereEnd)
    ->where('jf_log.' . 'day', $day)->where('jf_log.' . 'huodong_id', $activityFilterId)->count();

这样就成功跨库联表查询数据,其中$db_crm指的是userlist表所在库名,这段代码就是jf_log表关联users库所在userlist表统计数据

       这样方法简单粗暴又易懂,小伙伴们可以尝试,或者有更好的解决方法留言反馈给我。

0条评论

发表评论