我有两张桌子
用户表:
id|name
用户关系
id | user_id | friend_id
想知道两个用户的共同朋友的名字。即:
user_relationships
1 | 1 | 3
2 | 2 | 3
users
3| sammy
用户1和用户2有共同的朋友3。我想在一个查询中得到他的名字“sammy”。
我该怎么做?
最佳答案
SELECT id, name
FROM users
WHERE id IN (
SELECT friend_id
FROM user_relationships
WHERE user_id IN ( 1, 2 )
GROUP BY friend_id
HAVING COUNT(friend_id) >= 2
)
或者一个连接:
SELECT friend_id, name
FROM user_relationships r
INNER JOIN users u ON r.friend_id = u.id
WHERE user_id IN ( 1, 2 )
GROUP BY friend_id
HAVING COUNT(friend_id) >= 2
关于mysql - 共同好友SQL with Join(Mysql),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6731514/