2012-11-15 75 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

查詢改成這樣:

$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子句中的表,如果你不舒適與JOIN的,你可以閱讀一些文檔的:http://dev.mysql.com/doc/refman/5.0/en/join.html 應該幫助你理解它們的用途。