我有以下数据库表
categories
id, name
products
category_id, id, product_name, user_id
product_comments
product_id, id, comment_text, user_id
Run Code Online (Sandbox Code Playgroud)
我需要在product和product_comments表中计算不同用户的数量.我有以下查询,我选择所有那些至少有一个产品的类别,每个产品可能有零或一些评论......但我不知道的是如何得到这些不同的用户ID的总和..如果它只是从一个表我会尝试COUNT(products.user_id)....我的查询...
SELECT
c.*
FROM categories c
INNER JOIN products p ON p.category_id = c.id
LEFT JOIN product_comments pc ON pc.product_id = p.id
Run Code Online (Sandbox Code Playgroud)
我需要来自products和product_comments表的不同用户ID的总数.
我希望结果数据有点像下面这样:
Category_id, Category_name, TotalUsers
1, Test Category, 10
2, Another Category, 5
3, Yet another cat, 3
Run Code Online (Sandbox Code Playgroud)
这将为您提供总体计数,而不是所有不同ID的列表:
SELECT COUNT(DISTINCT user_id)
FROM products
LEFT JOIN product_comments comm ON products.id = comm.product_id
Run Code Online (Sandbox Code Playgroud)
select user_id from products
UNION
select user_id from product_comments
Run Code Online (Sandbox Code Playgroud)
这将为您提供表中存在的用户 ID 的不同列表。用户可以仅出现在其中一个表中,也可以同时出现在两个表中,并且仍将包含在列表中。