关于joinWith查询的疑问 [ 2.0 版本 ]
大家好,请问使用joinWith后,我看debug的sql记录,发现会多出来一条查询。
如 有表table_a、table_b关系为table_a.classid = table_b.id
使用如下查询后
$query = info::find()->select(['table_a.*','table_b.name');
$query->joinWith('infoClass');
生成sql大致如下
SELECT * FROM `table_a` LEFT JOIN `table_b` ON `table_a`.`classid` = `table_b`.`id` LIMIT 20
然后会多一个查询
SELECT * FROM `table_b` WHERE `id` IN ('3', '7')
问题是我之前的查询已经 获取到了table_b的内容了。
所以第二条sql 我个人认为没有必要在去查询一次数据库了。
请问大家,是如何避免这个二次查询的。 或者这个二次查询是有什么必要?
请大家解答,谢谢。
共 1 个回答
xjdata
注册时间:2011-12-07
最后登录:2024-05-05
在线时长:112小时38分
最后登录:2024-05-05
在线时长:112小时38分
- 粉丝23
- 金钱14169
- 威望75
- 积分16039