为什么这个查询不显示每个用户的点数和,而是显示所有的总和
我已经编写了一个SQL查询,它显示所有用户的所有点的总和,而我希望它:显示每个用户的点的总和。
我写的表格包含以下内容:

id  |  Score
1   |   20
2   |   30
2   |   50
1   |   10

总表:
id | points

1  | 30

1  | 40

我想加上user(1) = 30user(2) = 80的分数
Id: 1 = 30 = Fail
Id: 2 = 80 = Pass

我写的问题是:
$query = "SELECT SUM(sg.score) as sum, SUM(a.total) as suma FROM points as sg, totalpoints as a
          WHERE a.id = 1 GROUP BY sg.id";

相关代码如下:
<?php
  foreach($rowsum as $rowsm):
    if( ' '. htmlentities($rowsm['sum']) . '' > 50  )
      echo 'Pass';
    else if( ' '. htmlentities($rowsm['sum']) . '' >= 40  )
      echo 'Failed';

    echo ' ' . htmlentities($rowsm['sum'], ENT_QUOTES, 'UTF-8') . '<br>';

  endforeach;
?>

最佳答案

您需要按用户ID分组:

SELECT SUM(score) as sum FROM points GROUP BY id ORDER BY id

还有一个不正确的WHERE子句
WHERE id=id

不需要。

关于php - 总和查询不能正常工作的SQL和PHP,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23329522/

10-16 06:54