SELECT friend_id FROM friendships WHERE user_id = 1;
Returns:
+-----------+
| friend_id |
+-----------+
| 2 |
| 3 |
+-----------+
SELECT friend_id FROM friendships WHERE user_id = 2;
Returns:
+-----------+
| friend_id |
+-----------+
| 1 |
| 3 |
| 6 |
+-----------+
我正在寻找INTERSECT for MySQL的替代方法。我需要获得这两个查询之间的公共行。
答案 0 :(得分:1)
您可以使用联接来替换INTERSECT
SELECT DISTINCT f1.friend_id
FROM friendships f1
JOIN friendships f2 ON f1.friend_id = f2.friend_id
WHERE f1.user_id = 1 and f2.user_id = 2;
答案 1 :(得分:0)
尝试一下:
从
中选择A.friend_id(从在其中user_id = 1的友谊中选择SELECT friend_id)A
加入
(从友谊所在的user_id = 2中选择friend_id)B在A.friend_id = B.friend_id上
答案 2 :(得分:0)
您是否尝试过此查询?
由于我们试图找到用户1和用户2之间的共同朋友, 通过从好友关系中选择friend_id,并且(user_id = 1或user_id = 2)给出了两个用户都拥有的朋友的列表。当使用friend_id分组并且count(friend_id)> 1时,我们将查询他们共有的朋友。
Name: John Age: 38
,Name: Mary Age: 33