关联表查询分页,发现一个小问题,不知道是否BUG

#1 dcf80

关联表查询分页出现以下错误: SELECT COUNT(id) as sp_counter FROM (SELECT * FROM member a,member_detail b WHERE a.id=b.id ) sp_tmp_table_pager1
执行错误: Duplicate column name 'id'
……
D:\Apache2.2\www\SpeedPHP\Core\spModel.php on line 370
370.             $total_count = array_pop( array_pop( $this->model_obj->findSql("SELECT COUNT({$this->model_obj->pk}) as sp_counter FROM ($conditions) sp_tmp_table_pager1") ) );
……

member  和 member_detail  是主表和细表的关系,通过ID关联两个表


------------------
解决方法可以改写SQL SELECT * FROM member a,member_detail b ....,
将 *号改为字段可以解决问题,
但这样比较麻烦,要写死字段名了。

2010-03-10 22:30:55

#2 jake

SQL和查询两个表的时候,就是建议select后面要加上表名,比如说a.*, b.*,在使用findSql + spPager的时候要注意。这里可以参考一下微博,几个地方都用了findSql + spPager + spLinker

2010-03-11 08:34:13