Laravel-admin 查询过滤功能多表关联疑问
在使用laravel-admin中,需要对数据进行查询过滤,查看文档并实现了该功能,但是在debug sql语句的过程中发现,使用关联查询第一步sql会获取所有字段,实际上只需要获取到id字段,想知道可以自己限制这个字段么,或者有什么更好的优化办法么.
以下是表结构以及sql语句(为减少文字量,表结构已进行精简)
字段(users表) |
---|
id |
username |
字段(address表) |
---|
id |
uid |
height |
address |
通过users表对应的页面查询对应address表中height在10-20之间的数据debug出的两条sql
select * from `users` where exists (select * from `address` where `users`.`id` = `address`.`uid` and `height` between '10' and '20') order by `id` desc limit 20 offset 0
select `id`, `uid`, `height` from `address` where `address`.`uid` in (8) // 8为上一步查出来的id
疑问就是第一条sql的select * 换成select id是不是更好
我猜测可能是不知道关联字段,所以要查出所有字段然后再进行下一步,那这样的话为啥不先找到关联字段然后再查呢 :joy:
改下关联模型应该是可以的,我没试过,你可以试试