我有下面的模式
Friends Table
----------
user1_id
user2_id
Party
-----
user_id
party_id
我试图找到参与者数量为user1和user2的人数。例如,
Friends Table
----------
user1 | user 2
1 2 ( user 1 is connected to user 2)
1 4 ( user 1 is connected to user 4)
2 3
2 4
Party
--------
userid | partyid
1 1 (user 1 joined party 1)
2 1 ( user 2 also joined party 1)
1 2
2 2
1 3
2 3
4 3
返回结果,用户1和用户2都参加了3个相同的聚会,用户2和4加入了1方,而用户1和4也加入了1方
我想抓住所有参加过的用户1,然后抓住所有参与的用户2并在party_id上使用UNION,但有没有办法在所有用户的一次查询中做到这一点?
答案 0 :(得分:0)
您能澄清用户连接的含义吗?
忽略用户连接,您可以尝试以下
select P1.userId, P2.userId, count(*)
from Party as P1, Party as P2
where P1.partyId = P2.partyId and P1.userId < P2.userId
group by P1.userId, P2.userId
这将为您提供每个用户对一起参加的聚会数量的计数。