我在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
未知列'内部'在'来自条款'
选择
groupId
。mt_prs_groups
,groupName
。mt_prs_status
FROMmt_prs_administrators
加入inner
使用(mt_prs_groups
)内部 加入mt_prs_administrators
administratorId
。mt_prs_groups
=administratorId
。mt_prs_status
和statusId
。mt_prs_administrators
=statusId
。mt_prs_status
WHEREstatus
。mt_prs_administrators
= "主动"和administratorId
。mt_prs_administrators
= 3或administratorId
。grep
= 4
当我直接将它放在mysql上但在codeigniter中失败时,查询运行良好。问题是内连接依赖于另一个内连接
答案 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','我们应用连接的列名','连接类型');