Mysql SQL查询正在检索重复的结果

Mysql SQL查询正在检索重复的结果,mysql,Mysql,我正试图获得一些电影获奖名单,这是一个类似IMDB的学校项目。我必须获得特定电影的获奖名单,包括特定的年龄、发行日期、语言、奖项类型和类型。在我当前的sql查询中,我正在检索重复的行,这就是问题所在。我可以使用DISTINCT来解决这个问题,但我希望使我的sql查询更好。因此,在任何情况下,我都需要一些帮助来更改sql查询或数据库。谢谢 数据库: SQL查询: 使用GROUPBY子句,但您如何识别他们获得了哪些奖项?你想在单列中用逗号分隔吗?我应该用什么分组? movie: id,

我正试图获得一些电影获奖名单,这是一个类似IMDB的学校项目。我必须获得特定电影的获奖名单,包括特定的年龄、发行日期、语言、奖项类型和类型。在我当前的sql查询中,我正在检索重复的行,这就是问题所在。我可以使用DISTINCT来解决这个问题,但我希望使我的sql查询更好。因此,在任何情况下,我都需要一些帮助来更改sql查询或数据库。谢谢

数据库:

SQL查询:

使用GROUPBY子句,但您如何识别他们获得了哪些奖项?你想在单列中用逗号分隔吗?我应该用什么分组?
movie:
      id, title, release_date, age_rating, language, country

movie_genre:
      id_movie, type

movie_awards:
      id, id_movie, type, title, date

A movie can have number of movie_genre and movie_awards rows.
The movie_genre and movie_awards are connected to movie with FOREIGN KEY.
SELECT
    a.`id`, a.`id_movie`, a.`type`, a.`title`, m.`title` AS movie_title, (SELECT COUNT(a2.`id_movie`) FROM `movie_awards` AS a2 WHERE a2.`id_movie` = a.`id_movie`) AS count
FROM
    `movie_awards` AS a INNER JOIN `movie` AS m ON a.`id_movie` = m.`id` INNER JOIN `movie_genre` AS g ON a.`id_movie` = g.`id_movie`
WHERE
    m.`age_rating` <= 18 AND YEAR(m.`release_date`) >= 2000 AND
    a.`type` IN ("National", "Musical") AND
    m.`language` IN ("English", "Hindi") AND
    g.`type` IN ("Action", "Adventure") ORDER BY a.`date` LIMIT 100;