2014-12-26 4 views
0

codeigniter에서 활성 레코드에 문제가 있습니다. 여기 Codeigniter - 활성 레코드 Where 조인 열이 모호합니다

내 SQL

$this->db->select('*'); 
    $this->db->from('news as n'); 
    $this->db->join('user as u', 'n.id_user = u.id_user'); 
    $this->db->where('like >','10'); 
    $this->db->limit(10); 
    $this->db->offset($offset); 
    $query = $this->db->get(); 
    return $query->result_array(); 

은 "뉴스"테이블에 포함 된 열 ' 같은 '테이블도 열

하고 " 같은"포함 "사용자"입니다 출력은 다음과 같습니다 :

where 'where like where'는 ambiguo입니다. 내가 뉴스를 테이블처럼 원하기 때문에 우리

SELECT * FROM (`news` as n) 
    JOIN `user` as u ON `n`.`id_user` = `u`.`id` 
    WHERE `like` > '10' LIMIT 5 

은 그 때 나는

$this->db->where('n.like >','10'); 

$this->db->where('like >','10'); 

교체 ...하지만

모든 솔루션을 작동하지 않았다?

+0

$ this-> db-> where ('n.like>', '10'); in where clause – AVM

+0

내가 그 코드를 시도했다 .. 작동하지 않았다. –

+2

당신이 열 이름처럼 "좋아"하는 것을 기다린다? 이 경우 – avisheks

답변

3

당신은 너무 n.like

$this->db->select('*'); 
$this->db->from('news as n'); 
$this->db->join('user as u', 'n.id_user = u.id_user'); 
$this->db->where('n.like >','10'); 
$this->db->limit(10); 
$this->db->offset($offset); 
$query = $this->db->get(); 
return $query->result_array(); 

이 여전히 like으로 작동하지 않습니다 MySQL을의 예약 된 키워드입니다 n입니다 뉴스 테이블의 별칭을 사용해야합니다. 열 이름을 다른 것으로 변경해야합니다. 그러나 어떤 MySQL의 예약 된 키워드를 사용하는 것이 좋습니다가 아닌 열 이름으로,

$this->db->where('`like` >','10'); 

처럼 아포스트로피 (')의 열을 넣어 "와 같은"당신은 MySQL의 예약어 경우 here

1

에 대해 자세히 알아보기 식별자로 사용합니다. 다른 열 이름을 변경하고 같은 열을 사용하여 여러 테이블을 사용하는 경우 테이블 별칭을 사용하십시오.

$this->db->where('n.`like` >','10'); 
+0

'db' 활성 레코드 자동 추가 어포 스트로피 (') 필요 없음 – Girish

+0

그래서 이것이 응답을 downvote하는 이유라고 생각하십니까? – avisheks

+0

테이블 별칭이 필요합니다. 그렇지 않으면 작동하지 않습니다. – Girish

1

$this->db->select('*'); 
    $this->db->from('news as n'); 
    $this->db->join('user as u', 'n.id_user = u.id_user'); 
    $this->db->where('n.`like` >','10'); 
    $this->db->limit(10); 
    $this->db->offset($offset); 
    $query = $this->db->get(); 

주 같은 시도 : 예약 된 키워드가 아닌 다른 뭔가에 열 이름을 변경

0
당신이 예약 된 키워드를 피하기 때문에 열 이름과 같이 변경할 수 있습니다 경우

이 더 좋을 것이다 예를 들어 좋아해요.

$this->db->where('n.likes >', 10); 
관련 문제