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