php - 如何在第三个变量 mysql 查询中对两个子查询计数求和?

标签 php mysql sql

我正在尝试对总喜欢和评论求和,但结果始终为零 (0) 请帮我解决这个问题,因为我已经实现了大部分我找到但没有成功的解决方案。

SELECT DISTINCT id,name,picture,
(SELECT COUNT(id) from likes) as likes,
(SELECT COUNT(id) from comments) as comments,
(likes+comments) as total
From users

最佳答案

您不能在定义它们的同一 SELECT 中使用列别名。我建议在 FROM 子句中这样做:

SELECT DISTINCT u.id, u.name, u.picture, l.likes, c.comments,
       (l.likes + c.comments) as total
FROM users u CROSS JOIN
     (SELECT COUNT(id) as likes FROM likes) l CROSS JOIN
     (SELECT COUNT(id) as comments FROM comments) c;

据推测,u.id 是唯一的。如果是这样,您应该删除 SELECT DISTINCT。它只会对性能产生不利影响。

关于php - 如何在第三个变量 mysql 查询中对两个子查询计数求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45349515/

相关文章:

php - 嵌入内容的最佳选择是什么

PHP DOM 获取被选中的 <option> 标签

mysql - 如何在codeigniter中使用数据库中的sha1()密码登录?

MySQL 比较两个数据库和表并得到结果

mysql - 从单列中计数并将其分成 2 列

mysql - 更新 MySQL 表中的外键

mysql - 优化 SQL on MySQL 中的 GROUP_CONCAT

php - 具有更新计费周期的 Paypal 定期付款

php - 在 while 循环(作用域)之外使用变量

mysql - 如果其中一个条目满足特定条件,则删除一组中的所有条目