2013-03-03 2 views
3

필자는 임의 필드 3 개 ("location, crimes and food_rating") 및 임의의 두 테이블 이름 ("food and crimes")을 가지고 있습니다.모호한 쿼리 [codeigniter]

두 테이블에 특성이있는 경우 "모호한"오류가 발생합니다. 이는 이해할 수 있습니다. 그러나, 나는 가능한 각각의 경우를 점검 할 질의를 생성하고 가능한 경우 참여하는 방법을 생각할 수 없다.

나는 codeigniter에서 이것을하고 있으며, 지금까지는 다음과 같이 작성하여 오류를 일으켰습니다. 임의의 필드도 비어있을 수 있음에 유의해야합니다. 이 선택하고 싶은 문제 모호성이다

+0

열 이름에 tablename을 추가하여 모호성을 해결하십시오. tablename.columnname –

답변

3

(위치는 두 테이블에 있기 때문에)

Column 'location' in field list is ambiguous , 그것은 분명하지 않다 다음과 같이

$this->db->select($data->att_one . ',' . $data->att_two . ',' . $data->att_three) 
->from($data->db_one . ',' . $data->db_two) 
->get() 
->result_array(); 

I 나타나는 오류입니다 어떤 표 및 결과를 채우려는지 당신이 "음식"모두의 "위치"와 하나 개의 결과에서 "범죄"테이블을 원하는 경우에

, 당신이 그들을 별칭을해야합니다 :

$this->db 
    ->select('food.location as foodlocation, crimes.location as crimeslocation') 
    ->from('food, crimes') 
    ->get() 
    ->result_array(); 

당신이 결과로 무슨 일을하는지에 따라 정말 당신이 무슨 일을하는지에 따라 달라집니다

$results = array(); 
$select = array($data->att_one, $data->att_two, $data->att_three); 
$tables = array($data->db_one, $data->db_two); 

foreach ($tables as $tableName) 
{ 
    $results[$tableName] = $this->db->select($select) 
     ->get($tableName) 
     ->result_array(); 
} 

, 그러나 희망 당신은 데이터베이스 쿼리를 이해할 수없는 이유를 참조하십시오, 각 테이블에 대한 새 쿼리를 사용하는 것이 더 쉬울 수 있습니다.

+0

네 손에 엉망이있는 것 같은데. 물론 내가하는 일에 대해 확신 할 수는 없지만 전반적인 접근 방식을 다시 생각하는 것이 유용 할 수 있다는 강한 의구심이 있습니다. –