【发布时间】:2016-09-13 02:56:01
【问题描述】:
我遇到了以下问题:
编写查询以查找与另一个用户 U 有完全相同朋友的任何用户。
这里是表格(和一个 SQL Fiddle:http://sqlfiddle.com/#!9/457260/1):
- 用户:
- user_id: Int
- 友谊:
- user_id: Int
- friend_id:内部
我的查询遇到的问题是它返回的用户拥有相同的朋友或比用户 U 更多的用户。
SELECT *
FROM users INNER JOIN friendships ON users.id = friendships.user_id
WHERE users.id != 1 AND friendships.friend_id IN (
SELECT DISTINCT friendships.friend_id
FROM friendships
WHERE friendships.user_id = 1
)
GROUP BY users.id
HAVING COUNT(DISTINCT friendships.friend_id) = (
SELECT COUNT(DISTINCT friendships.friend_id)
FROM friendships
WHERE friendships.user_id = 1
);
【问题讨论】:
标签: sql postgresql activerecord relational-division