【问题标题】:codeigniter inner join tables syntaxcodeigniter 内部连接表语法
【发布时间】: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 film WHERE title LIKE '%ac%' ESCAPE '!' AND name = '恐怖' AND length > '100'
  • film_category 表有 2 列:film_id, category_id;;; category 表有 2 列:category_id, name
  • 你可以使用 $this->db->query("your sql here");如果你想完成它..

标签: php mysql codeigniter


【解决方案1】:
$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 出现问题。

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 2015-09-21
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2018-10-06
    • 2014-05-31
    相关资源
    最近更新 更多