子查询情况下 parseTable 存在 bug, 望官方修复

浏览:524 发布日期:2016/10/11 分类:ThinkPHP5专区 关键字: ThinkPHP5专区 915
调试我自己项目时用到子查询$tpSql1 = Db::name('order')->where('saled_id', 'in', '1,2,3,4,5')->group('saled_id')->having('count(*)=1')->buildSql();
$oCount = Db::table($tpSql1.' a')->count();
类似 这样的语句时

源码: think\db\Builder 190行$tables = array_map([$this, 'parseKey'], explode(',', $tables));此时 $tables的值为: '( SELECT * FROM `tp_order` WHERE  `saled_id` IN (1,2,3,4,5) GROUP BY saled_id HAVING count(*)=1       ) a'执行上面源码array_map语句, 应该是错误的, 需要区别考虑 子查询table和非子查询情况处理
希望修复一下哈, 谢谢
最佳答案
评论( 相关
后面还有条评论,点击查看>>