SELECT 计算 2 个表中的行数并对结果求和
SELECT count rows from 2 tables and sum the results
我有 PHP 代码:
$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,
当它不应该这样做时。
我在这两个表中总是有行,返回的结果永远不应该是 NULL。
这是对 2 个表的行数求和的正确方法吗?我不明白为什么有时我会得到 NULL 而不是数字。
好吧,我建议你这样做
select ( select count(*) from Table1 ) + ( select count(*) from Table2 )
as total_rows
执行此查询并获取 total_rows
的值将 return 得到真实结果
或者您可以创建一个存储过程来做同样的事情。如下所述
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
你为什么不只使用一个这样的查询:
您将一步直接获得结果,这将避免两次联系数据库以获取中间结果,并且还将简化您的程序!
SELECT
(select count(*) from table_1)
+
(select count(*) from table_2)
我有 PHP 代码:
$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,
当它不应该这样做时。
我在这两个表中总是有行,返回的结果永远不应该是 NULL。
这是对 2 个表的行数求和的正确方法吗?我不明白为什么有时我会得到 NULL 而不是数字。
好吧,我建议你这样做
select ( select count(*) from Table1 ) + ( select count(*) from Table2 )
as total_rows
执行此查询并获取 total_rows
的值将 return 得到真实结果
或者您可以创建一个存储过程来做同样的事情。如下所述
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
你为什么不只使用一个这样的查询: 您将一步直接获得结果,这将避免两次联系数据库以获取中间结果,并且还将简化您的程序!
SELECT
(select count(*) from table_1)
+
(select count(*) from table_2)