Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mysql中对同一表中的三个字段求和_Sql_Union_Sum - Fatal编程技术网

如何在mysql中对同一表中的三个字段求和

如何在mysql中对同一表中的三个字段求和,sql,union,sum,Sql,Union,Sum,我有一个包含字段的表,我想对三个不同字段的数据求和,如下所示。我做了如下代码,但有错误。因此,请帮助我编写正确的代码: <?php include "config.php"; ?> <?php $results = mysql_query ("SELECT sum(hit),as total from ( select hit from sound union select hit from soundK union select hit from so

我有一个包含字段的表,我想对三个不同字段的数据求和,如下所示。我做了如下代码,但有错误。因此,请帮助我编写正确的代码:

    <?php include "config.php"; ?> 
    <?php $results = mysql_query
("SELECT sum(hit),as total from ( 
select hit from sound union 
select hit from soundK union 
select hit from soundD ") ; 
while ( $row = mysql_fetch_array($results) ) 
{ ?> 
<?php echo $row[total];?> <?php }?> 

所以请尽快帮助我


提前感谢

您有一个额外的
,缺少一个结束
和一个派生表别名:

<?php include "config.php"; ?> 
<?php $results = mysql_query(
    "SELECT sum(hit) as total 
    FROM ( 
        SELECT sum(hit) hit from sound 
        UNION ALL SELECT sum(hit) hit from soundK 
        UNION ALL SELECT sum(hit) hit from soundD 
    ) rs") ; 
while ( $row = mysql_fetch_array($results) ) { ?> 
    <?php echo $row['total'];?>
<?php }?> 

如果需要3个单独的列:

<?php include "config.php"; ?> 
<?php $results = mysql_query(
    "SELECT soundHits, soundKHits, soundDHits
    FROM ( 
        SELECT sum(hit) soundHits from sound
    ) a, (
        SELECT sum(hit) soundKHits from soundK
    ) b, ( 
        SELECT sum(hit) soundDHits from soundD 
    ) c") ; 
while ( $row = mysql_fetch_array($results) ) { ?> 
    soundHits: <?php echo $row['soundHits'] ;?>
    soundKHits: <?php echo $row['soundKHits'] ;?>
    soundDHits: <?php echo $row['soundDHits'] ;?>
<?php }?> 

配乐:
soundKHits:
声音提示:

select (
    (select sum(hit) from sound) +
    (select sum(hit) from soundK) +
    (select sum(hit) from soundD)) 

给出你的数据库结构。。因为您需要使用联接将一个表映射到另一个表。。所以你需要外键,这不是同一个表中的三个不同字段,而是来自三个不同表的相同字段名。但是这不会只生成一个和吗??而不是每行三列的总和?@gaurav shah Ya,我相信这就是OP想要的。我认为是另一种方式。无论如何,他的问题还不够清楚。。因此,我们可以让他回答:)但您在这里提到的两个代码是在($row=mysql\u fetch\u array($results)){?>时在线显示错误,有关更多详细信息,我想将数据相加为三个字段的结果(hit)frm sound+soundK+sound例如:如果从声音中点击=11如果从声音中点击=22如果从声音中点击=33,那么我希望它们的总数=66,我的意思是感谢您应该使用
IFNULL()
包装内部选择,以防表中没有任何记录。