表结构
主表结构:
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的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持站长技术。
第一章 编译的阶段划分 两个辅助模块的功能 前端、后端、遍 编译执行和解释执行 ...
多要素自动气象站FT-QC10多要素气象站有FT-QC4FT-QC5FT-QC6FT-QC7FT-QC8FT-QC9FT...
鸠摩搜书 搜索免费下载技术书籍各种pdf 。 go 道客巴巴 在线文档分享平台可以查...
Mysql数据表操作 前言 在mysql数据库中数据库最基本的单元是表所有的数据都存储...
希望用marquee标签来设置字体滚动,代码是下面这样写的,但是没有效果,字体还是...
深入理解计算机系统Bomb实验 前言 准备阶段 上传bomb.c文件 生成汇编代码 进入gd...
HTML style 标签 style 标签 -- 在文档中声明样式时使用此标签 style标签是成对...
只有在遇到问题的时候,才体会到技巧带来的好处! 常见企业工作流程 主要介绍,...
12月28日消息 外媒 Bleeping Computer 报道,谷歌 Chrome 浏览器开发人员最近解...
在Linux中使用Shell写一个显示目录结构的命令,快速寻找目录结构。 1、代码 #!/u...