php - MYSQL Sum 和 Count 在不同的表上,在同一个查询中

标签 php mysql sql count sum

我正在尝试获取一些统计数据;总链接、用户和 View ,来自 3 个不同的表。 我在尝试什么:

SELECT SUM(p.views), COUNT(c.id), COUNT(u.id)
FROM studenkel_userprefs as p, studenkel_content as c, studenkel_users as u

如果我在三个不同的查询中单独执行它们,它们工作正常,但结果比我想要的高几千倍。我猜他们以某种方式相互繁殖,提示?

谢谢

编辑:谢谢你们,非常感谢你们的帮助,解决了这个问题。

最佳答案

您在 from 中所做的称为不带条件的隐式内部联接。

这意味着您的最终 View 有 p.rows * c.rows * u.rows 行,这就是您得到奇怪结果的原因。

如果您有 3 个问题,请分开提问,不要同时提问。

或者,如果你真的只想要一个请求,你可以使用一些丑陋的东西:

SELECT
  SELECT SUM(views) FROM studenkel_userprefs as "sum_userprefs",
  SELECT COUNT(id) FROM studenkel_content as "cnt_content",
  SELECT COUNT(u.id) FROM studenkel_users as "cnt_users"
FROM DUAL;

关于php - MYSQL Sum 和 Count 在不同的表上,在同一个查询中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521813/

相关文章:

javascript - 当用户使用不同帐户打开新选项卡时,强制刷新旧选项卡中的站点

mysql - 使用 LIMIT 时获取总行数?

mysql - MySQL 中 BIT(64) 列的奇怪行为

mysql - 组数据限制

mysql - 连接表时需要更快的 FIND_IN_SET 替代方案

php - Codeigniter,为 MySQL 创建表和用户

php - 如何在没有参数的情况下获取文件名?

php - 如何将这 25 个 INSERT 查询合并为一个?

sql - 选择最新的可用值 SQL

javascript - 我正在进行在线测试,一切都完成了。但我的自动提交计时器不起作用。