0

MySQL 表如下所示:

markers
id, tid,        lat,    lng
1   1           42.000  2.500
2   1           41.000  2.400
3   2           40.000  2.300

markers_types
id, name,   image
1   TYPE1   type1.png
2   TYPE2   type2.png

在使用 CodeIgniter 的 Active Records 时:

function get_coordinates(){

    $this->db->select('*');
    $this->db->from('markers');
    $this->db->join('markers_types', 'markers.tid = markers_types.id');
    $this->db->where('state', 1);
    $query = $this->db->get();

    if( $query->result() < 1 ) return FALSE;

    $results = $query->result();
    return $results;

}

id它将来自两个不同表的命名为一个的两列连接(或合并) 。如何防止这种情况?是否可以防止合并这些列而不重命名它们?

4

2 回答 2

1

只需修改您的$this->db->select('*');语句以列出您要在响应中捕获的各个table.field名称。

$this->db->select('markers.type_id, markers.lat, markers.lng, markers_types.id, markers_types.name, markers_types.image');
于 2013-08-15T18:43:55.007 回答
1

与 DevlshOne 的回答类似,我会使用显式选择值,但为了区分您也可以为您的选择值设置别名,如下所示:

$this->db->select('markers.type_id as m_id, markers.lat, markers.lng, markers_types.id as mt_id, markers_types.name, markers_types.image');
于 2013-08-15T18:54:21.723 回答