php - Codeigniter join() 不起作用

标签 php mysql codeigniter join

我正在尝试使用 codeigniter 框架运行查询。我想避免使用 WHERE 子句,而是将条件作为 ON 子句的一部分包含在查询的 JOIN 语句中。由于 JOIN 语句在 WHERE 子句之前执行,因此效率会高得多。这是我的代码:

    $this->db->select('SQL_CALC_FOUND_ROWS
        projects.id, projects.project_name, projects.date_modified, 
        projects.last_modifier, projects.status, project_users.permission', false)->
            from('projects');
        $this->db->join('project_users', 'project_users.id = projects.id AND 
            project_users.user_id = ' . $this->user_id);
    if ($orderby !== false) {
        $this->db->order_by($orderby, $direction);
    }
    if ($limit !== null) {
        $this->db->limit($limit, $offset);
    }
    $query = $this->db->get();

当我尝试加载页面时,收到 SQL 错误。看来 codeigniter 不包括 AND 之后的条件:

SELECT SQL_CALC_FOUND_ROWS projects.id, projects.project_name, projects.date_modified, projects.last_modifier, projects.status, project_users.permission FROM (`projects`) JOIN `project_users` ON `project_users`.`id` = `projects`.`id` AND ORDER BY `project_name` ASC LIMIT 5, 0

最佳答案

join('project_users', 'project_users.id = projects.id AND project_users.user_id = ' . $this->user_id);

应该是

$this->db->join('project_users', 'project_users.id = projects.id AND 
        project_users.user_id = ' . $this->user_id);

关于php - Codeigniter join() 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18319046/

相关文章:

javascript - 如何获取javascript文件中的php session 值

ide - 需要一个好的 CodeIgniter IDE

php - 如何使用 Composer 包嵌入/嵌入到 codeigniter 中

php - Laravel 查询,显示一个表中的结果,其 id 不在另一个表中

mysql - 如何编写员工表和部门表的 SQL 查询

jquery - 尝试从多选下拉列表中添加所选项目的值

mysql - 转换为分区表

php - 蛋糕 PHP : Find condition on deeper level of recursion

php - XAMPP - 如何从主目录执行 PHP 文件?

php - 使用 foreach 将数据库检索的数据排列在 HTML 表中