首页 > 解决方案 > php/mysql 正确合并具有相同列的 2 个表

问题描述

编辑:感谢 JoseCarlosPB 这里是解决方案:

SELECT
  (select count(DISTINCT userscount) AS duplicates from users1)
  +
  (select count(DISTINCT userscount) AS duplicates from users2) AS duplicates
FROM dual;

所以我有 2 个表和一个 mysql 语句,我想合并 2 个表,但两者都有相同的列。我认为 PHP 代码中没有什么可做的,我认为问题出在 mysql 语句中。

我的代码有效(没有错误),但它给出了意外的输出。我只是想正确计算用户数,这就是我的意思:table1 有 32 个用户,table2 有 44 个用户我认为输出将是 76 个用户,但它是 3244

PHP:

include 'conn00.php';
    $sql = "select DISTINCT userscount, count(DISTINCT userscount) AS duplicates from users1 UNION ALL
     select DISTINCT userscount, count(DISTINCT userscount) AS duplicates from users2";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // output data of each row
        while($row = $result->fetch_assoc()) {
            echo $row["duplicates"];
        }
    } else {

    }

表格1:

users1 

32

表2:

users2 

44    

输出:3244 我希望输出为 76

如果解决方案在 mysql 中会更好 bcz 我有更多类似的 sql 语句,我想将解决方案应用于所有这些语句。谢谢回答

标签: phpmysql

解决方案


我认为你可以这样做,就像alistaircol说的那样

SELECT
  (select count(DISTINCT userscount) AS duplicates from users1)
  +
  (select count(DISTINCT userscount) AS duplicates from users2) AS duplicates
FROM dual;

推荐阅读