编辑:谢谢JoseCarlosPB,这里是解决方案:
SELECT
(select count(DISTINCT userscount) AS duplicates from users1)
+
(select count(DISTINCT userscount) AS duplicates from users2) AS duplicates
FROM dual;所以我有两个表和一个mysql语句,我想合并两个表,但是这两个表都有相同的列,我认为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 {
}table1:
users1
32table2:
users2
44 输出: 3244我希望输出为76
如果解决方案在mysql中,bcz会更好,我有更多类似的sql语句,我希望将该解决方案应用于所有这些语句。谢谢你的回答
发布于 2019-12-11 12:25:19
我想你可以这样做,就像alistaircol说的
SELECT
(select count(DISTINCT userscount) AS duplicates from users1)
+
(select count(DISTINCT userscount) AS duplicates from users2) AS duplicates
FROM dual;发布于 2019-12-11 11:54:24
请查看您需要Combine two MYSQL table with same column Name的文章
与此相比,您需要将计数移到UNION之外,以便如您所期望的那样工作
发布于 2019-12-11 12:06:33
也许您可以在查询中尝试这样的方法:
SELECT
(select count(DISTINCT userscount) AS duplicates from users1 group by usercount)
+
(select count(DISTINCT userscount) AS duplicates from users2 group by usercount)
FROM dual;DUAL纯粹是为了方便那些要求所有SELECT语句都应有FROM和可能还有其他子句的人。MySQL可以忽略这些条款。如果没有引用表,则MySQL不要求使用DUAL。
关于DUAL:https://dev.mysql.com/doc/refman/8.0/en/select.html的更多信息
https://stackoverflow.com/questions/59238895
复制相似问题