您现在的位置是:网站首页> 编程资料编程资料
浅谈laravel中的关联查询with的问题_php实例_
2023-05-25
309人已围观
简介 浅谈laravel中的关联查询with的问题_php实例_
表结构
主表结构:
Create Table CREATE TABLE `user` ( `uid` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL, `email` varbinary(255) NOT NULL, PRIMARY KEY (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=114001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
附表结构:
CREATE TABLE `user_options` ( `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT, `uid` mediumint(8) unsigned NOT NULL, `age` tinyint(3) NOT NULL, `sex` tinyint(1) NOT NULL, PRIMARY KEY (`id`), KEY `options_key` (`uid`) ) ENGINE=InnoDB AUTO_INCREMENT=114001 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
并使用seed插入随机数据10W条
测试
分别建立User,Options模型,并且建立一对一的关系,
代码如下:
User::with(['options'=>function($query){ $query->where('sex','=','1'); }])->paginate(15); laravel的debug监控到的SQL运行如下: select count(*) as aggregate from `user` select * from `user` limit 15 offset 0 select * from `user_options` where `user_options`.`uid` in ('1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15') and `sex` = '1' 结论
如果是需要使用附表的过滤做列表筛选,使用with就不是很好了!
使用with的的意思,在确定主信息的时候,罗列符合条件的附表信息,适合单条或者少量主表信息或者主表信息筛选
以上这篇浅谈laravel中的关联查询with的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
相关内容
- thinkphp框架使用JWTtoken的方法详解_php实例_
- Laravel 对某一列进行筛选然后求和sum()的例子_php实例_
- asp.net和php的区别点总结_php技巧_
- 解决laravel groupBy 对查询结果进行分组出现的问题_php实例_
- PHP之多条件混合筛选功能的实现方法_php实例_
- laravel实现按月或天或小时统计mysql数据的方法_php实例_
- laravel5.5添加echarts实现画图功能的方法_php实例_
- 使用laravel和ECharts实现折线图效果的例子_php实例_
- Laravel统计一段时间间隔的数据方法_php实例_
- 浅谈PHP5.6 与 PHP7.0 区别_php实例_
