0

codeigniter フレームワークを使用してクエリを実行しようとしています。WHERE 句の使用を避けたいので、クエリの JOIN ステートメントの ON 句の一部として条件を含めました。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 エラーが発生します。AND の後に codeigniter に条件が含まれていないようです。

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
4

1 に答える 1