2011-08-19 39 views
0

我有一个表中有字段,我想从下面三个不同字段求和数据。我做了如下代码,但有错误。所以,请帮助我做出正确的代码对我说:如何在mysql中的同一个表中总结三个字段

<?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 }?> 

所以请事先尽快

感谢帮助

+0

给你的数据库结构..因为你需要一个表映射到其他使用联接..所以你需要外键 –

+1

这是在同一个表而不是三个不同的领域,它来自三个不同的表中相同的字段名称。 – paxdiablo

回答

1

你有一个额外的,,缺少一个右)和派生表别名:

<?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 }?> 
+0

但是这不会产生一个总和? 而不是每行的三个colomn的总和? –

+0

@ gaurav-shah雅,我相信这是OP想要的。 –

+0

我想另一种方式。反正他的问题是不够清楚..所以我们可以让他给他回复:) –

0

或者......

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

如果表没有任何记录,则应使用'IFNULL()'封装内部选择。 –

相关问题