说起来很简单,但我找不到语法,甚至找不到接近的示例!假设下表:
Table:'Red'
Fields: id | sm | md | lg
Data: 1 | 3 | 5 | 7
2 | 9 | 8 | 7
3 | 2 | 4 | 6
Table:'White'
Fields: id | sm | md | lg
Data: 1 | 0 | 0 | 0
2 | 0 | 0 | 0
3 | 0 | 0 | 0
Table:'Blue'
Fields: id | sm | md | lg
Data: 1 | 1 | 1 | 1
2 | 1 | 1 | 1
3 | 1 | 1 | 1
我想要的就是将所有内容加起来,但保留如下表所示的行:
Table:'Total'
Fields: id | sm | md | lg
Data: 1 | 4 | 6 | 8
2 | 10 | 9 | 8
3 | 3 | 5 | 7
然后在 PHP 中创建一个 while 循环来回显结果。像这样的事情:
<?php
while($row = mysql_fetch_array($get_totals))
{
echo <td>".$row[sm]."</td><td>".$row[md]."</td><td>".$row[lg]."</td>";
}
?>
我无法弄清楚这一点。有什么帮助吗?我只需要一个可以在这里工作的 php select 语句。
最佳答案
未经测试,但应该可以工作:
SELECT id, SUM(sm) as sm, SUM(md) as md, SUM(lg) as lg FROM (
SELECT * FROM Red
UNION ALL
SELECT * FROM White
UNION ALL
SELECT * FROM Blue
) AS somealias
GROUP BY id
关于php - MySQL:sum() 和连接多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923905/