SELECT подсчитать строки из 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,
когда он не должен этого делать.

У меня всегда есть строки в этих 2 таблицах, и возвращаемый результат не должен быть NULL, никогда.

Это правильный подход для суммирования количества строк в 2 таблицах? Я не понимаю, почему иногда я получаю NULL вместо числа.

0

Решение

Ну, я бы предложил вам сделать это как

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

выполнение этого запроса и получение значения total_rows вернет вам истинный результат

Или вы можете создать хранимую процедуру, чтобы сделать то же самое. как объяснено ниже

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
3

Другие решения

Почему бы вам не выполнить только один запрос, подобный этому:
вы получите результат непосредственно за один шаг, и он не будет связываться с БД дважды для получения промежуточного результата, а также упростит вашу программу!

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector