Codeigniter对来自多个表的数据进行分页

时间:2013-11-24 07:10:53

标签: codeigniter pagination multiple-tables

我目前正试图让分页处理来自多个表的数据。遵循代码

$query = $this
                ->db
                ->select('group.*')
                ->select('group_type.GroupType')
                ->from ('group','group_type')
                ->join('group_type', 'group.GroupTypeId = group_type.GroupTypeId')
                //->where('group.UserId',$userid)
                ->get('group',$config['per_page'], $this->uri->segment(3))->result();

运行此操作时出现以下错误

    Error Number: 1066

Not unique table/alias: 'group'

SELECT `group`.*, `group_type`.`GroupType` FROM (`group`, `group`) JOIN `group_type` ON `group`.`GroupTypeId` = `group_type`.`GroupTypeId` LIMIT 10

我知道CI在这里生成的SQL查询不正确。需要知道如何纠正它?

2 个答案:

答案 0 :(得分:0)

更仔细地阅读文档 - 您将看到:

1)不要在from()

中使用两个表

2)不要像你一样使用from()和get()

答案 1 :(得分:0)

jmadsen的回答是正确的,

具体来说,只需删除

即可
->from ('group','group_type')

线。

您已经在查询的“join”和“get”部分中提到了这两个表名,这就是您不需要“from”部分的原因。

from部分导致错误地形成SQL的这一部分:

FROM (`group`, `group`)

表名不能在FROM

中重复