codeigniter区分联接表中的字段名

codeigniter区分联接表中的字段名,codeigniter,Codeigniter,我需要从两个表中检索数据。第一个是活动列表,第二个是场馆列表 我在两个表中都有一个名称相同的字段:events.vention(是一个ID)和ventions.vention是地点的名称,比如“blues bar”。 这些表可以在events.venture=victions.id上连接 我的模型片段: $this->db->select('events.*, venues.*'); $this->db->join('venues', 'events.ve

我需要从两个表中检索数据。第一个是活动列表,第二个是场馆列表

我在两个表中都有一个名称相同的字段:events.vention(是一个ID)和ventions.vention是地点的名称,比如“blues bar”。 这些表可以在events.venture=victions.id上连接

我的模型片段:

$this->db->select('events.*, venues.*');
        $this->db->join('venues', 'events.venue = venues.id');
        if ($date != 'all')
        {
            $this->db->where('date', $date);
        }

        if ($keyword)
        {
            $this->db->like('description', $keyword);
            $this->db->or_like('band', $keyword);
            $this->db->or_like('venue', $keyword);
            $this->db->or_like('genre', $keyword);
        }

        $Q = $this->db->get('events');
        if ($Q->num_rows() > 0)
        {
            foreach ($Q->result() as $row)
            {
                $data[] = $row;
            }
        }

        $Q->free_result();
        return $data;
视图的片段:

foreach ($events as $row) {
            echo    "<p>{$row->band} ({$row->genre})<br />";
            echo    "Playing at: {$row->venue}<br /></p>"; // echoes "blues bar"
//more here...
}
foreach($events作为$row){
回声“{$row->band}({$row->genre})
”; echo“播放地点:{$row->VICENUE}

”;//echo“蓝调酒吧” //这里有更多。。。 }
2个问题: 1) 为什么$row->VICENUE会响应VICENTES.VICENUE而不是events.VICENUE

B) 如何区分它们?如果我想同时回应事件地点和地点地点怎么办?我可能会做一些类似“选择场馆。场馆作为场馆名称”的事情,但如果我已经选择*,我怎么做?

快速修复:

$this->db->select('events.col1 AS ev_col1,
                   events.col2 AS ev_col2,
                   venues.col1 AS ven_col1,
                   venues.col2 AS ven_col2);
其中col1、col2是表中的列。然后使用

$row->ven_col1 

访问值。

这可能会起作用,但对于一个非常大的表,我需要列出所有字段。我可以做一些事情吗?“选择所有,但考虑Viue.地点作为VuueEnEngy”?为什么不试试,$-> dB->选择('*,Viue.ViueSeas ViueNeNe])IrAkLIS-你已经比我快了!我只是想发表一条评论,说我试过:$this->db->select('events.*,ventions.*,events.vention AS vention_id');成功了!我不完全确定这是最佳实践,但它确实有效!一定有更好的方法,比如
$vention\u vention=$row->ventions.vention$events\u vention=$row->events.vention
,但这不起作用。