带有连接语句的Codeigniter连接语句

时间:2016-11-17 11:48:19

标签: php mysql codeigniter select inner-join

我在codeigniter框架中将下面的语句转换为我的模型上的代码时遇到了问题。

$this->db->select('mt_prs_groups.groupId, mt_prs_groups.groupName');
$this->db->from('mt_prs_status');
$this->db->join('mt_prs_administrators', 'inner');
$this->db->join('mt_prs_groups', 'mt_prs_administrators.administratorId = mt_prs_groups.administratorId AND mt_prs_status.statusId = mt_prs_administrators.statusId', 'inner');
$this->db->where('mt_prs_status.status="Active"');
$this->db->where('mt_prs_administrators.administratorId=3');
$this->db->or_where('mt_prs_administrators.administratorId=4');

在模型上我将其翻译为

mt_prs_groups

这给了我下面的错误

  

错误号码:1054

     

未知列'内部'在'来自条款'

     

选择groupIdmt_prs_groupsgroupNamemt_prs_status FROM   mt_prs_administrators加入inner使用(mt_prs_groups)内部   加入mt_prs_administrators administratorIdmt_prs_groups =   administratorIdmt_prs_statusstatusIdmt_prs_administrators =   statusIdmt_prs_status WHERE statusmt_prs_administrators =   "主动"和administratorIdmt_prs_administrators = 3或   administratorIdgrep = 4

当我直接将它放在mysql上但在codeigniter中失败时,查询运行良好。问题是内连接依赖于另一个内连接

3 个答案:

答案 0 :(得分:1)

请试试这个。我试过这个到codeigniter

$this->db->select('mt_prs_groups.groupId, mt_prs_groups.groupName');
$this->db->from('mt_prs_status');
$this->db->join('mt_prs_administrators', 'mt_prs_status.statusId = mt_prs_administrators.statusId','inner');
$this->db->join('mt_prs_groups', 'mt_prs_administrators.administratorId = mt_prs_groups.administratorId', 'inner');
$this->db->where('mt_prs_status.status="Active"');
$this->db->where('mt_prs_administrators.administratorId=3');
$this->db->or_where('mt_prs_administrators.administratorId=4');

答案 1 :(得分:0)

请尝试此格式

 $this->db->select('tbl_tasks.task_id,tbl_tasks.task, tbl_assign_task.user_id');
        $this->db->from(TBL_TASKS);
        $this->db->join(TBL_ASSIGN_TASK, 'tbl_tasks.task_id = tbl_assign_task.task_id');
        $this->db->where('tbl_assign_task.is_deleted', 0);
         $this->db->where('tbl_assign_task.user_id', $userId);
        $query = $this->db->get();

答案 2 :(得分:0)

在这一行中 - “$ this-> db-> join('mt_prs_administrators','inner');”您没有定义连接条件,这就是您收到错误的原因,因为CI中的连接格式是 - $ this-> db-> join('table_name','我们应用连接的列名','连接类型');