2012-08-13 3 views
0

두 개의 테이블이 있습니다 : '경쟁'과 '항목'. 내 경쟁 테이블에서 경쟁이 실행되었는지 알려주는 "완료된"열이 있습니다. 내 항목 표에는 사용자 ID 열과 대회 ID 열이 있습니다. 사용자가 'entries'테이블의 모든 행을 확인한 다음 'competition'테이블에서 해당 경쟁 ID가 완료되었는지 확인하는 각 행에 대해 경쟁 할 수 있는지 확인하는 JOIN을 작성하려고합니다. 나는 내 조인에별로 강하지 못해서 지금까지 약간 잃어 버렸습니다. 나는 현재 CodeIgniter를하고 있어요하지만 일반 PHP에 대한 설명도 잘 될 것Codeigniter/PHP MySQL Join

$this->db->select('*'); 
$this->db->from('entries'); 
$this->db->join('competitions', 'competitions.id = entries.competition_id'); 
$this->db->where('entries.user_id', $user_id); 
$this->db->where('competitions.complete', '0'); //0 for incomplete, 1 for complete 
$query = $this->db->get(); 
if ($query->num_rows() > 0) { 
    return FALSE; //user is currently in an active competition 
}else { 
    return TRUE; //user is not in an active competition 
} 

: 이것은 내가 지금까지 가지고 있지만 제대로 작동하지 않는 것입니다. 도와 줘서 고마워!

+2

' $ this-> db-> join ('경쟁', 'competitions.id = entries.competition_id', '왼쪽'); ' –

+0

쿼리의 결과는 무엇입니까? 행이 있습니까? MySQL에 보내지는 실제 쿼리 텍스트를 출력 할 수 있습니까? – gcochard

+0

제대로 작동합니다. 컨트롤러와 모델간에 문제가되는 것 같았습니다. 도와 줘서 고마워! –

답변

0

당신은 왼쪽 사용하거나 바로 당신이 얻을하고자하는 더 나은 결과를 조인 할 수 있습니다 ...

$this->db->join('table2','table1.id = table2.id','LEFT/RIGHT'); 

난 당신이 또한 내부 사용할 수 있습니다 thnk, 외부는 ... 유용 희망에 참가합니다