仅考虑一个字段从mysql中选择唯一记录

时间:2012-11-15 04:49:39

标签: php mysql select

我的问题可能没有反映我的问题,一开始对不起。我有一个问题,我需要从表中选择不同的电影名称,同时选择其ID和其他记录。但由于每部电影的ID不同,因此选择所有电影(具有相同名称)。这是查询:

    $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只有一次!

1 个答案:

答案 0 :(得分: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 这应该可以帮助你理解它们的用途。