gpt4 book ai didi

在两行关系的情况下的Java MySQL COUNT查询

转载 作者:行者123 更新时间:2023-11-29 00:07:09 24 4
gpt4 key购买 nike

我正在用 Java 开发 Web 应用程序。我在那里使用了几个 MySQL 表。

其中一个标记了两个对象之间的“关系”。所以我创建了一个表:

id  username    relation    timestamp
1 user1 user2 2014-11-18 12:20:03
2 user2 user1 2014-11-18 12:20:03

当该用户将另一个用户标记为“相关”并且第二个用户也将第一个用户标记为“相关”时,该用户与另一个用户相关。

如果是

id  username    relation    timestamp
3 user1 user3 2014-11-18 12:20:03

没有任何关系。

我可以统计一个用户的单向关系的数量。但现在我需要计算一个用户的真实(双边)关系的数量。我可以使用 COUNT 命令吗?

最佳答案

我假设 username + relation 列有唯一约束,因此不可能两次输入相同的关系,例如

id  username    relation    timestamp
1 user1 user2 2014-11-18 12:20:03
2 user1 user2 2014-11-18 12:20:03

在上述假设下,为了统计特定用户的“双面”关系,可以使用半连接:

SELECT count(*)
FROM table1 x1
WHERE EXISTS(
SELECT 1 FROM table1 x2
WHERE x1.`username` = x2.`relation`
AND x1.`relation` = x2.`username`
)
AND x1.`username` ='user1';

演示:http://sqlfiddle.com/#!2/67db14/2


我还假设表上有一些限制,阻止输入与自己相关的用户,例如:

id  username    relation    timestamp
1 user1 user1 2014-11-18 12:20:03

关于在两行关系的情况下的Java MySQL COUNT查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993451/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com