1

我一直在查看这个错误一段时间,但看不到我的 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->from 行,将 album_images 移动到开头使错误更改为 images.id 。如果那是相关的。

有人知道我在这里做错了什么吗?谢谢

4

2 回答 2

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

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

另见:

于 2012-04-10T20:03:29.400 回答
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'
    );
于 2014-05-29T10:56:43.363 回答