2016-05-22 5 views
3

PHPとSQLを使用して、3つの別々のテーブルの列の合計をエコーし​​ようとしています。私はそれが非常に肥大化しているので、どのように私はこれを簡素化することができますかと思います。3つのテーブルの列のすべての数値の合計?

ありがとうございます!

public function getTotalSum() { 
    include("dbconnect.php"); 
    $query1 = "SELECT SUM(column1) AS 'count' FROM table1"; 
    $query2 = "SELECT SUM(column2) AS 'count' FROM table2"; 
    $query3 = "SELECT SUM(column3) AS 'count' FROM table3"; 
    $result1 = mysqli_query($sqlcon, $query1); 
    $result2 = mysqli_query($sqlcon, $query2); 
    $result3 = mysqli_query($sqlcon, $query3); 

    if (mysqli_num_rows($result1) > 0 && mysqli_num_rows($result2) > 0 && mysqli_num_rows($result3) > 0) { 
     while ($row = $result1->fetch_assoc() + $result2->fetch_assoc() + $result3->fetch_assoc()) { 
      echo $row['count']; 
     } 
    } 
} 
+0


は、次のようなアプローチを適用します。私は3つのテーブルをそれぞれの列に持っています。私は3つのテーブルから3つの列の合計を取得したい。 – Matt

+0

['join'](https://dev.mysql.com/doc/refman/5.7/en/join.html)を試しましたか? – Arcesilas

答えて

3

複数のSQLクエリではなく、1つのSQLクエリを使用します。ちょうど私が何を意味するか明確にし

public function getTotalSum() { 
    include("dbconnect.php"); 
    $query = "SELECT 
       (SELECT SUM(column1) AS 'count' FROM table1) 
       + (SELECT SUM(column2) AS 'count' FROM table2) 
       + (SELECT SUM(column3) AS 'count' FROM table3) AS count;  
    "; 
    $result = mysqli_query($sqlcon, $query); 

    if (mysqli_num_rows($result) > 0) { 
     $row = $result->fetch_assoc(); 
     echo $row['count']; 
    } 
} 
+0

ありがとうございます!それは完全に動作します! – Matt

+0

@Sphiinx、よろしいですか? – RomanPerekhrest

関連する問題