您的位置:首页 > 教程 > PHP编程 > 浅谈laravel中的关联查询with的问题

浅谈laravel中的关联查询with的问题

2020-09-10 07:16:57 来源:易采站长站 作者:

浅谈laravel中的关联查询with的问题,附表,信息,结构,好了,不是很

浅谈laravel中的关联查询with的问题

易采站长站,站长之家为您整理了浅谈laravel中的关联查询with的问题的相关内容。

表结构

主表结构:

Create TableCREATE 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 0select * 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的问题的详细介绍。欢迎大家对浅谈laravel中的关联查询with的问题内容提出宝贵意见

微信扫一扫

易采站长站微信账号