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
的列连接(或合并)到两个不同的表中。怎么预防?是否可以防止合并这些列而不重命名它们?
答案 0 :(得分: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');
答案 1 :(得分: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');