2012-10-04 4 views
0

CI 데이터베이스 도우미/클래스/lib에 대한 이해를 얻으려고합니다. 그리고 핵심 기본 사항은 아무런 문제가 없습니다. 하지만 나는 ORM을 사용하는 것보다는 쿼리를 곧바로 쓰는 데 익숙하다. 조금 혼란 스럽다. 어쨌든 .. 이 mysql 쿼리에 해당하는 Codeigniter

나는이 쿼리 기본적으로

SELECT * FROM my_table 
    WHERE ((a_id = xx OR b_id = xx) AND (a_id = zz OR b_id = zz)) 
    AND active = 1 

나는 서로 연관이 사용자가 테이블을 가지고 있지만, 여러 사용자가 그래서 확실히 연결이 사이가 특히입니다해야에게 되세요 2 여기서 활성 플래그는 그대로입니다.

그러나 CI의 ORM에서 해당 쿼리를 처리하는 방법을 잘 모르기 때문에 문제에 대한 지침을 찾고 있습니다.

답변

1

다음 코드를 내이 대답에

$this->db->select('*'); 
$this->db->where('(a_id = "xx" or b_id = "xx")'; 
$this->db->where('(a_id = "zz" or b_id = "zz")'; 
$this->db->where('active', '1'); 
+0

나는 능동태 기록이 질의를 위생적으로 다루기 때문에 더 좋다고 생각한다. – Shaolin

+0

'$ this-> db-> Select ('*')'가 중복되었습니다. 기본적으로 Active Record 클래스는 모든 필드를 선택합니다. –

1

당신이 이런 식으로 할 수있는 아주 좋은 생각이 어떻게 하위 쿼리를 사용하는 방법 또는 액티브 레코드 상황의이 종류를 줄 것이다

$this->load->database(); 
$sql = "SELECT * FROM mytable WHERE visible = 't' ORDER BY symbol"; 
$query = $this->db->query($sql); 
return $query->result(); 

http://codeigniter.com/user_guide/database/queries.html

관련 문제