MySQL在CodeIgniter中两次在同一个表中连接两个不同的列

时间:2014-07-02 15:25:12

标签: php mysql sql codeigniter

我有announcements表,我存储announcements.catid(类别ID)。

类别表categories用于嵌套categories.pid

我想要做的是在多维数组中逐个嵌套类别。

以下是我希望它如何在突出显示部分内的图像:

enter image description here

这是代码:

public function get_mixed( $limit = NULL, $offset = NULL )
{
    $this->db
        ->select('
            announcements.id,
            announcements.catid,
            announcements.uid,
            categories.title AS section,
            categories.title AS category,
            announcements.title,
            announcements.text,
            announcements.views,
            announcements.created,
            announcements.modified,
            announcements.pubdate
        ')
        ->join('categories', 'announcements.catid = categories.id', 'left')
        ->join('categories as section', 'categories.pid = section.id', 'left')
        ->order_by('created DESC, '.$this->_order_by);

    return $this->db->get( $this->_table_name, $limit, $offset )->result();
}

我首先尝试创建section别名,但它会得到相同的结果。

也许有更好的方法?

1 个答案:

答案 0 :(得分:1)

如果您将其中一个categories联接别名为section,那么您需要将那个 categories表中的任何字段引用为{ {1}}(例如,section.[field]

我不确切地知道你想要什么,我对你修改后的查询的最佳猜测是:

section.title