Mysql count(*) 基于两个关系

标签 mysql

我想统计 (*) 有多少客户创建了帖子或发表了评论。如果同一客户发布了多个帖子和评论,则应只计算一次。


客户表:
ID 姓名 ...
1 Jonh
2 标记
3
4 Doe

张贴表:
ID USER_ID ...
1 1
2 1
3 3
4 1

评论表:
ID USER_ID ...
1 1
2 3
3 3
4 4

它应该返回 count(*) = 3
(user_id:1、3 和 4)。

最佳答案

试试这个。它对我有用并返回您要查找的内容:

SELECT COUNT( USER_ID ) AS TOTAL
FROM (
SELECT USER_ID
FROM POSTS
UNION
SELECT USER_ID
FROM COMMENTS
)X

我使用 POSTS 和 COMMENTS 作为表名,因为我不确定您的确切表名是什么,所以请确保在您的查询中更改它们。

关于Mysql count(*) 基于两个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876284/

相关文章:

mysql - 不使用循环更新 SQL 表的正确方法

asp.net - 如何执行求和运算,排除第一条记录

同一页面上的 PHP 表单验证提前显示

mysql - 为 Web 应用构建推荐引擎(Rails + MySQL +?)——从哪里开始

mysql - 按最大日期分组 3 个表

java - 第 35 行的 HTTP 状态 500

mysql - 如何在 Laravel 中加入 2 个表?

java - 如何处理 RollbackException 和约束违规

php mysqli,如何选择值并准备它们以更新其他表

mysqldump 在 perl 脚本中抛出错误,但在脚本之外运行良好