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的活动记录时:
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
的列连接(或合并)为一列。如何防止这种情况发生?是否可以防止在不重命名这些列的情况下合并这些列?
只需修改$this->db->select('*');
语句,即可列出要在响应中捕获的单个表.field名称。
$this->db->select('markers.type_id, markers.lat, markers.lng, markers_types.id, markers_types.name, markers_types.image');
类似于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');