Codeigniter中“字段列表”中的未知列'xxx'

时间:2012-04-10 19:43:00

标签: php codeigniter activerecord join

我一直在看这个错误一段时间,看不出我的codeigniter sql查询出错了什么,有人可以建议吗?

“字段列表”中的未知列'album_images.album_id'

        $this->db->select('
        albums.id as album_id,
        albums.album_title,
        album_images.album_id,
        album_images.image_id,
        AVG(views.id) as views_id,
        views.views as views_total,
        images.id, 
        images.alpha_id,
        images.user,
        images.image_title,
        images.image_type,
        images.file_ext,
        images.image_width,
        images.image_height,
        images.file_size,
        images.submitted,
        images.status'
    );

    $this->db->from('images', 'albums', 'album_images', 'views');
    $this->db->join('albums', 'albums.id = album_images.album_id');
    $this->db->join('views', 'views.id = images.id', 'left');
    $this->db->where('albums.id', $id);
    $this->db->where('images.status', 1); //fiter out deleted ones

    $this->db->group_by('images.id');

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

我已经多次检查了所有拼写,但仍然得到了相同的结果。我尝试从行重新排序this-> db->,将album_images移动到开头,将错误更改为images.id。如果那是相关的。

任何人都知道我在这里做错了什么?感谢

2 个答案:

答案 0 :(得分:4)

SELECT ... FROM (`images`) JOIN `albums` ON `albums`.`id` = `album_images`.`album_id` ...

如果您在两个表(imagesalbums)之间进行连接,则需要制定这两个表之间的关系。在您的情况下,您在两个表之间进行连接,但关系是第三个表(album_images),因此找不到该字段。

参见:

答案 1 :(得分:0)

试试这个你给出重复的列名 我纠正你检查它是否有效

$this->db->select('
        albums.id as albums_id,
        albums.album_title,
        album_images.album_id,
        album_images.image_id,
        AVG(views.id) as views_id,
        views.views as views_total,
        images.id, 
        images.alpha_id,
        images.user,
        images.image_title,
        images.image_type,
        images.file_ext,
        images.image_width,
        images.image_height,
        images.file_size,
        images.submitted,
        images.status'
    );