我有一个积分系统,我正在尝试将它们加在一起。它们位于两个不同的表上,我使用子查询来获取两个总计并将它们一起添加。两个子查询都可以正常工作,但是将它们加在一起会给我带来比预期更多的数据。
这是我的疑问:
SELECT (SUM(tbl_achieve.achieve_points)+SUM(tbl_assign.assign_points))
FROM
(SELECT DISTINCT(tbl_achievements.achieve_id), tbl_achievements.achieve_points FROM tbl_achievements INNER JOIN tbl_studentachieve ON tbl_studentachieve.achieve_id = tbl_achievements.achieve_id AND tbl_studentachieve.student_ID = 8 AND tbl_achievements.achieve_cat = "main" ) as tbl_achieve,
(SELECT DISTINCT(tbl_assignments.assign_id), assign_points FROM tbl_assignments INNER JOIN tbl_studentassign ON tbl_studentassign.assign_id = tbl_studentassign.assign_id WHERE tbl_assignments.assign_cat = "main" AND tbl_studentassign.student_id = 8 AND tbl_studentassign.assign_status = "submitted") as tbl_assign
我认为问题是,它将两个行计数放在一起。因此,由于另一个表的数量,我有10行10点,而不是2行10点。
知道我可能缺少什么吗?
答案 0 :(得分:0)
在不了解您的数据库的情况下,这将是艰难的。我运行了以下查询: 选择SUM(feed_id)+ SUM(user_id)FROM事件,其中1
在我自己的数据库上,它将这些完整行的正确添加返回到一行。听起来这不是你想要的,但这是mySQL的预期行为。也许对你正在寻找的东西进行更详细的解释将有助于你找到你需要的地方。干杯...