如何计算多个表中的行数

时间:2017-04-08 21:22:06

标签: mysql

我有两个不同的男性和女性排名表。

id | rank | name | surname | totalpoints | lvpoints | itf points
1  | 1    | Nick | Fisher  | 100         | 50       | 50

表的结构是相同的。 例如,男性表包含70行和女性52。

获取男性表COUNT的代码:

<?php
$sql = "SELECT COUNT(*) AS count FROM mensranking";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$count = $row['count'];
echo $count;
?>

我的目标是获得122号(男子表数+女性表数)。

尝试了很多选项(在stackoverflow上找到了什么),对我没用。

2 个答案:

答案 0 :(得分:0)

以下是您的解决方案。但我会建议你制作具有性别分布的单表,如新的字段,表明用户是男/女,那么你不需要使用union all计算两个表记录。根据您的数据要求,您可以使用另外一种不同的东西。

SELECT COUNT(*)
FROM
(
    select distinct id from mensranking

    union all

    select distinct id from womensranking
) total_records

答案 1 :(得分:0)

我会写一个查询,如下:

  SELECT 'womensranking' AS tbl, COUNT(*) AS cnt FROM womensranking
  UNION ALL
  SELECT 'mensranking', COUNT(*) AS cnt FROM mensranking

有很多选择,但这种方法是单个查询,一次往返数据库。

如果我们需要从每个表中获取个人计数,那么我会这样做:

{{1}}

然后获取两行。同样,这只是数据库的一次往返,以获得两行(两个计数)。