0

我的问题可能没有反映我的问题,起初很抱歉。我有一个问题,我需要从表中选择不同的电影名称,同时选择它的 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 的结果!

4

1 回答 1

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 这应该可以帮助您了解它们的用途。

于 2012-11-15T04:59:33.390 回答