Предположим что у меня есть база фильмов с жанрами и я хотел бы сделать возможность исключать определённые жанры с условием ИЛИ т.е. если у фильма есть хотя бы один из исключаемых жанров, его следует исключить из выборки. Казалось бы тривиальная задача. Окей. Т.к. мы будем использовать Ruby on Rails, мы ведь не будем писать raw sql запросы, правда ведь? Поэтому для этих целей я нашёл соответствующий Gem и смог казалось бы вполне логично составить запрос, не буду вас утруждать реализацией, если интересно, можете посмотреть мой вопрос на
Stackoverflow, где мне пока к сожалению не спешат отвечать.
Скажу лишь что конечный запрос MySQL который формирует active record получается примерно таким
SELECT `movies`.* FROM `movies`
INNER JOIN `movie_genres` ON `movie_genres`.`movie_id` = `movies`.`id`
WHERE ((`movie_genres`.`genre_id` != 10 OR `movie_genres`.`genre_id` != 12))
GROUP BY `movies`.`id`;
Но не очень рабочий. См. скриншот
Несмотря что запись казалось бы попадает под условие (у фильма есть жанр 10), он всё равно показывается.
В чём может быть проблема и где стоит начать копать?
Спасибо большое.