2017-11-01 16 views
0

結果を合計し、私はPHPのコードを持っている:SELECT count行と

$query = mysqli_query($mysqli, "SELECT * FROM `table_1`"); 
$result = mysqli_num_rows($query); 

$queryTwo = mysqli_query($mysqli, "SELECT * FROM `table_2`"); 
$resultTwo = mysqli_num_rows($queryTwo); 

$number = $result + $resultTwo; 
return $number; 

ポイントは、それはそれを行うことになってはならないとき時々、$number変数がNULL、 を返しているということです。

私はこれらの2つのテーブルに常にローを持ち、返される結果はNULLであってはいけません。

これは、2つのテーブルの行数を合計する正しい方法ですか?時々私が数値の代わりにNULLを取得する理由を理解していません。

答えて

3

まあ、私はこのクエリを実行し、total_rowsの値がtrueの結果

戻りますまたはあなたが同じことを行うには、ストアドプロシージャを作成することができます取得

select (select count(*) from Table1) + (select count(*) from Table2) 
    as total_rows 

のようにそれを行うには、あなたをお勧めしますもの。あなたがワンステップで直接結果を持っています 、それが二回中間結果をフェッチするためにDBに接触しないようになり、それはまた、簡素化されます:

CREATE PROCEDURE sp_Test 
AS 
-- Create two integer values 
DECLARE @tableOneCount int, @tableTwoCount int 

-- Get the number of rows from the first table 
SELECT @tableOneCount = (SELECT COUNT(*) FROM Table1 
         WHERE WhereClause) 
SELECT @tableTwoCount = (SELECT COUNT(*) FROM Table2 
         WHERE WhereClause) 

-- Return the sum of the two table sizes 
SELECT TotalCount = @tableOneCount + @tableTwoCount 
1

以下に説明するように、なぜあなたはこのような一つだけのクエリを行っていませんあなたのプログラム!

SELECT 
(select count(*) from table_1) 
+ 
(select count(*) from table_2)