错误消息:未知列'类别'在' 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));
答案 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出现问题。
希望有所帮助。