【发布时间】:2015-08-21 14:17:22
【问题描述】:
错误消息:'where 子句'中的未知列'category'
我必须内连接两个表。什么应该是正确的查询? 或者我应该在 $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));
【问题讨论】:
-
你的表中有
category列吗?我认为它应该是name而不是category -
你能提供表架构吗
-
是的,列名是“name”而不是“category”,但是,即使我将其更改为 $query->where('name', $query_array['category']);同样的事情:错误消息:'where 子句'中的未知列'name' SELECT * FROM
filmWHEREtitleLIKE '%ac%' ESCAPE '!' ANDname= '恐怖' ANDlength> '100' -
film_category 表有 2 列:film_id, category_id;;; category 表有 2 列:category_id, name
-
你可以使用 $this->db->query("your sql here");如果你想完成它..
标签: php mysql codeigniter