Вложенные запросы в symfony

У меня есть сущность Review, которая содержит поля:

id
userID
bookID
review

а затем объект рейтинга, содержащий поля:

id
reviewID
userID
rating

Рейтинг может хранить 0 или 1.

Как бы я выполнил запрос с помощью symfony, чтобы подсчитать все оценки из таблицы оценок, которые равны 1, а затем подсчитать оценки, которые равны 0, а затем минус количество для 0 оценок из числа для 1 оценок и вернуть его для каждого обзора?

Как бы я это сделал? Кажется очень сложным

1 ответ

  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;

    Посмотрите здесь, как получить значение, прикрепленное к сущности.