mysql - symfony 中的子查询

标签 mysql symfony

我有一个评论实体,其中包含以下字段:

id
userID
bookID
review

然后是包含以下字段的评级实体:

id
reviewID
userID
rating

评级可以存储 0 或 1。

如何使用 symfony 执行查询来计算评级表中等于 1 的所有评级,然后计算等于 0 的评级,然后从 1 评级的计数中减去 0 评级的计数并返回它每条评论?

我该怎么做?看起来非常棘手

最佳答案

好吧,既然你正在使用 Symfony,我假设你也在使用 Doctrine。

Doctrine 允许您执行 native 查询。看看如何执行 native 查询 here 。 在 MySQL 上你可以执行子查询,看看 here关于如何做到这一点。

然后尝试这样的事情:

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)) 作为评论 rv 的结果;

看看here关于如何获取附加到实体的值。

关于mysql - symfony 中的子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41404901/

相关文章:

Symfony 3.4.0 找不到任何要加载的 fixture 服务

PHP array_sum 不工作

mysql - 如何修复此 JOIN 查询?

php - 在 MySQL 中搜索大量 ID

php - Twig:从配置文件中添加 Twig 扩展调试

symfony - 学说查询构建器限制和偏移

symfony - 如何使用symfony2中的表单获取输入类型是数字?

symfony - VichUploaderBundle - 命名者 : Parent definition does not exist

php - 在 php 中使用 PDO 时从 mysql 数据库读取数组时出现问题

MySQL - 递归两个节点之间的树路径