codeigniter内连接表语法

时间:2015-08-21 14:17:23

标签: php mysql codeigniter

错误消息:未知列'类别'在' where子句'

我必须内联两个表。什么应该是正确的查询? 或者我应该在$ query-> get()中输入什么参数?如果我只放电影',则无法找到'类别'另一个表中的列。

    $query = $this->db->select('title, name as category, rental_rate, length')->order_by($sort_by, $sort_order);

    $query = $this->db->join('film_category', 'film_category.film_id = film.film_id');

    $query = $this->db->join('category', 'film_category.category_id = category.category_id');

    if(strlen($query_array['title'])) {
        $query->like('title', $query_array['title']);
    }

    if(strlen($query_array['category'])) {
        $query->where('category', $query_array['category']);
    }

    $data['films'] = $query->get('film', 20, $this->uri->segment(6));

1 个答案:

答案 0 :(得分:2)

$this->db->select('title, name as category, rental_rate, length')->order_by($sort_by, $sort_order);
$this->db->from('film'); /*I assume that film was the table name*/
$this->db->join('film_category', 'film_category.film_id = film.film_id');
$this->db->join('category', 'category.category_id = film_category.category_id');

$query = $this->db->get();

var_dump($query);

仔细检查我添加的代码,并确保在类别表上,该列名为category_id,而不仅仅是id,而在film_category下,有一个category_id列。 如果使用我提交的代码,您仍然会收到错误,请尝试用

替换第一行
$this->db->select('title, name, rental_rate, length')->order_by($sort_by, $sort_order);

我不确定使用与表匹配的名称是否会导致CodeIgniter和ActiveRecord出现问题。

希望有所帮助。