Php 在使用SELECT SUM()GROUP BY时,如何仍能获得单个值?

Php 在使用SELECT SUM()GROUP BY时,如何仍能获得单个值?,php,mysql,sql,Php,Mysql,Sql,在执行联接选择*时,SUMvalues AS MaxValues FROM table GROUP BY id,$a=$data['MaxValues']将按其应该的方式等于9。但是,如何仍然提取单个值2、3、4?在$b=$data['values']上尝试foreach只会给出其中一个值。我假设是因为需要分组。我对这一切还是新手。谢谢您可以选择值并使用JOIN进行求和。此外,如果要获取所有值,则不需要GROUP BY,例如: values = 2,3,4 我想,您正在寻找的是group_co

在执行联接选择*时,SUMvalues AS MaxValues FROM table GROUP BY id,$a=$data['MaxValues']将按其应该的方式等于9。但是,如何仍然提取单个值2、3、4?在$b=$data['values']上尝试foreach只会给出其中一个值。我假设是因为需要分组。我对这一切还是新手。谢谢

您可以选择值并使用JOIN进行求和。此外,如果要获取所有值,则不需要GROUP BY,例如:

values = 2,3,4
我想,您正在寻找的是group_concat:

SELECT value, a.sum
FROM table, (SELECT SUM(value) AS `sum` FROM table ) a;

注意:您不应将SELECT*与GROUP BY一起使用。只在GROUP BY子句中包含列。

两个查询,或者只运行一次并对值进行迭代求和。您也可以从这里检查答案。小组合作非常棒,谢谢。p、 我会用真实的列名来修正我的*。谢谢,谢谢,谢谢
JOIN (SELECT id, SUM(values) AS MaxValues, group_concat(values) as values
      FROM table
      GROUP BY id)