YII2-数据库数据查询方法,关联查询with, joinWith区别和分页

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了YII2-数据库数据查询方法,关联查询with, joinWith区别和分页相关的知识,希望对你有一定的参考价值。

一、ActiveRecord 活动记录

1.with关联查询

  例如,查询评论

 $post = Post::find()->with(‘comments‘);

 

  等价于以下结果集

 SELECT * FROM `post`;
 SELECT * FROM `comment` WHERE post_id IN (...)
 
 结合Pagination分页查询OK

 

2.joinWith关联查询,返回

 $post = Post::find()->joinWith(‘comments‘, true)

 等价于:

 SELECT * FROM post LEFT JOIN `comment` comments ON post.`id` = comments.`post_id`;
 SELECT * FROM `comment` WHERE post_id IN (...);
  
 joinWith 返回一个包含关联表的结果集, 可以使用 order by / 过滤条件 / group by 关联数据

  但joinWith 结合Pagination分页查询,只能返回1条记录,为何???

以上是关于YII2-数据库数据查询方法,关联查询with, joinWith区别和分页的主要内容,如果未能解决你的问题,请参考以下文章

21.Yii2.0框架多表关联一对多查询之性能优化--模型的使用

yii2单表内字段关联查询该怎么做

yii2中关联查询

Yii2实现跨mysql数据库关联查询排序功能

Yii2 Gridview查询关联筛选

Yii2框架学习 4-1 modelSearch类学习 自定义搜索,关联查询