2011-08-19 64 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()'封裝內部選擇。 –

相關問題