Итак, у меня есть запрос:
SELECT AVG(ratings.rating)
FROM ratings
INNER JOIN movies
ON movies.movieid = ratings.movieid
INNER JOIN hasagenre
ON hasagenre.movieid = movies.movieid
INNER JOIN genres
ON hasagenre.genreid = genres.genreid
WHERE genres.name = 'Comedy'
Последняя строка наиболее важна для этого, она получает средний рейтинг всех COMEDY
фильмов.
Но в целом у меня есть пара таблиц, связанных с базой данных фильмов, таких как movies(title,id)
, genres(name,id)
, ratings(movie,rating)
, hasagenre(movie,genre)
..... Пример:
Movie | Genre
------------------
Get Smart | Comedy
Get Smart | Romance
Scream | Horror
Затем я хочу написать запрос, который получает среднюю оценку фильмов, которые COMEDY
и ROMANCE
, то есть Get Smart
. Таким образом, я просто обновил последнюю строку запроса следующим образом:
SELECT AVG(ratings.rating)
FROM ratings
INNER JOIN movies
ON movies.movieid = ratings.movieid
INNER JOIN hasagenre
ON hasagenre.movieid = movies.movieid
INNER JOIN genres
ON hasagenre.genreid = genres.genreid
**WHERE (genres.name = 'Comedy' AND genres.name = 'Romance')**
Однако это не работает и возвращает 0 строк, хотя я точно знаю, что в базе данных есть фильмы, которые удовлетворяют обоим жанрам. Что здесь не так?
Каков правильный синтаксис для предложения с несколькими условиями AND
в одном столбце?