select count(*)不能给出正确的计数

san*_*jay 1 mysql select

我试图计算以下三个结果的总和,但我只计算一个结果.

$sql = "(SELECT COUNT(*) FROM  table1 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM  table2 WHERE somecondition)
UNION
(SELECT COUNT(*) FROM  table3 WHERE somecondition)";
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙.谢谢

Thi*_*ilo 5

您的查询将返回三行,其中包含三个单独的计数.

你想要的是什么

  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
Run Code Online (Sandbox Code Playgroud)