У меня есть сущность Review, которая содержит поля:
id
userID
bookID
review
а затем объект рейтинга, содержащий поля:
id
reviewID
userID
rating
Рейтинг может хранить 0 или 1.
Как бы я выполнил запрос с помощью symfony, чтобы подсчитать все оценки из таблицы оценок, которые равны 1, а затем подсчитать оценки, которые равны 0, а затем минус количество для 0 оценок из числа для 1 оценок и вернуть его для каждого обзора?
Как бы я это сделал? Кажется очень сложным
Хорошо, как вы используете Symfony я предполагаю, что вы также использовать доктрину.
Доктрина позволяет выполнять собственные запросы . Посмотрите, как выполнить собственный запрос здесь .
На MySQL вы можете выполнять подзапросы, посмотрите здесь, как это сделать.
Тогда попробуйте что-то вроде этого:
SELECT rv.* , ((SELECT count(*) FROM ratings ra WHERE ra.rating = 1 AND id rv.id = ra.reviewID) - (SELECT count(*) FROM ratings ra WHERE ra.rating = 0 AND id rv.id = ra.reviewID)) as result FROM review rv;
Посмотрите здесь, как получить значение, прикрепленное к сущности.