【发布时间】:2021-04-02 08:23:23
【问题描述】:
我有 3 个数据库,其中 3 个表是相关的。
- 第一个表是注册用户,从数据库 1 获得移动
- 第二个是用户信息,包含来自数据库的 id、mobile、age 和birth2
- 第三,数据库3中具有user_id、log和created_at的用户历史记录
我应该从第一个表中选择所有记录,然后从 table2 中获取 id、age 和birth 以及 mobile 的关系,然后从第三个 table 中获取 log 的总和以及 user_id 的关系。
我在表一中没有用户 ID
在我的视图文件中,我应该显示注册用户列表,包括手机、年龄、出生和日志总和。
我为table1和table2定义了hasOne关系,命名为info,为table2和table3定义了hasMany关系,命名为logs
$users = Table1::query()->with([
'info',
])->paginate(100);
然后在每个用户的刀片视图中$user->info->logs()->where('created_at' ,'>=',$date)->sum('log')
因为表 2 和表 3 有很多数据,我需要最好的查询。 这种方式不合适,因为我有 N+1 用于获取日志
【问题讨论】: