次の 3 つの結果すべての合計を数えようとしていますが、1 つの結果しか数えられません。
$sql = "(SELECT COUNT(*) FROM table1 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM table2 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM table3 WHERE somecondition)";
誰でも助けてくれますか?
クエリは、3つの別々のカウントで3つの行を返します。
あなたが欲しいのは
select sum(c) from (
(SELECT COUNT(*) AS c FROM table1 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM table2 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM table3 WHERE somecondition)
) all_three
あなたが異なるフィールドとしてすべてのテーブルの数を探しているなら..
SELECT (SELECT count(*) FROM table_1) As first_count,
(SELECT count(*) FROM table_2) As second_count,
(SELECT count(*) FROM table_3) As third_count
そして、3つのテーブルすべてのすべてのカウントを合計したい場合は、
SELECT SUM ((SELECT count(*) FROM table_1) +
(SELECT count(*) FROM table_2) +
(SELECT count(*) FROM table_3) ) AS total_count
このようなものを試すことができます....
SELECT sum(
( SELECT count(*) from table1)
+ ( SELECT count(*) from table2)
+ ( SELECT count(*) from table3)
+ ( SELECT count(*) from table4) )as total from dual
クエリは、テーブルごとに 3 つの行を返します。
代わりに次のクエリを使用してください。
$sql = "SELECT SUM(C) FROM(
(SELECT COUNT(*) as C FROM table1 WHERE somecondition)
UNION
(SELECT COUNT(*) as C FROM table2 WHERE somecondition)
UNION
(SELECT COUNT(*) as C FROM table3 WHERE somecondition)
)";
(使用しているデータベースに応じてクエリを調整する必要があります)