2012-11-15 2 views
0

내 질문에 내 문제가 반영되지 않았을 수 있습니다. 문제가 생겼습니다. ID 및 다른 레코드를 선택하여 테이블에서 별개의 영화 이름을 선택해야합니다. 그러나 각 영화마다 ID가 다르므로 모든 영화가 선택됩니다 (이름은 동일 함). 다음 쿼리는 다음과 같습니다하나의 필드 만 고려하여 mysql에서 고유 레코드 선택

$sql = " 
      SELECT DISTINCT 
       movie_id,movie_name 
      FROM 
       tbl_current_movies as cm, tbl_movie_hall as mh 
      WHERE 
       movie_active = 'active' 
      AND 
       cm.hall_id = mh.hall_id 
     "; 

$res = $this->db->returnArrayOfObject($sql,$pgin = 'no'); 

    var_dump($res); 

그리고 var_dump($res)는 말한다 :

array 
    0 => 
    object(stdClass)[48] 
     public 'movie_id' => string '1' (length=1) 
     public 'movie_name' => string 'MIB' (length=12) 
    1 => 
    object(stdClass)[49] 
     public 'movie_id' => string '2' (length=1) 
     public 'movie_name' => string 'Jetuka Pator Dare' (length=17) 
    2 => 
    object(stdClass)[50] 
     public 'movie_id' => string '3' (length=1) 
     public 'movie_name' => string 'MIB' (length=12) 

을 그래서 당신은 MIB 두 번 보여주는 영화를 볼 수 있지만, 나는 결과에 영화 MIB 번만를 얻으려면!

+0

다음 movie_id를 원하십니까? 1 또는 3? –

답변

1
이에 조회를 변경

: 그건해야 http://dev.mysql.com/doc/refman/5.0/en/join.html 다음 당신이 문서의 일부를 읽을 수 있습니다 조인

$sql = "SELECT movie_id , movie_name 
     FROM tbl_current_movies as cm 
     LEFT JOIN tbl_movie_hall mh ON cm.hall_id = mh.hall_id 
     WHERE movie_active = 'active' 
     GROUP BY movie_name 
     "; 

당신은 당신이 편하지하지 않은 경우, WHERE 절에 테이블을 조인하지 말아야 그들이 무엇인지 이해하도록 도와주세요.

관련 문제