我什至不知道如何表达这个问题。我将给出示例内容和想要的输出,我正在寻找一个查询来做到这一点。
假设我有一个名为“标记”的表格,其中包含以下内容:
content_id | user_id
1 | 1
1 | 2
1 | 3
2 | 1
2 | 3
2 | 4
3 | 2
3 | 3
4 | 1
4 | 2
5 | 1
6 | 1
6 | 4
我在 content_ids 之间有一个不对称的关系:
master_content_id | slave_content_id
1 | 2
3 | 4
5 | 6
对于每个“主”content_id(1、3 和 5),我想计算有多少不同的用户标记了主内容或从内容,但计算将两者标记为单个标记的人 - 这意味着在上面的示例中, content_id=1 由 user_id=1(作为 content_id=1 和 content_id=2)、按 user_id=2(作为 content_id=1)、按 user_id=3(作为 content_id=1 和 content_id=2)和按 user_id 计算=4(因为 content_id=2!)
我要进行的查询输出的一个示例是:
content_id | user_count
1 | 4 # users 1, 2, 3, 4
3 | 3 # users 1, 2, 3
5 | 2 # users 1, 4
我不能假设相关的 content_ids 总是连续的奇数/偶数(即 66 可以是从机 58 的主机)
我正在使用 MySQL,不介意使用它对 SQL 的扩展(而是查询是 ANSI,或者至少可移植到大多数数据库)