SQL:http ://www.sqlfiddle.com/#!2/0f7a0d5/4
表包含以下行:
INSERT INTO `friends` (`asker_user_id`, `asked_user_id`, `status`) VALUES (1,2,1);
INSERT INTO `friends` (`asker_user_id`, `asked_user_id`, `status`) VALUES (2,1,1);
INSERT INTO `friends` (`asker_user_id`, `asked_user_id`, `status`) VALUES (3,2,1);
此查询选择当前用户的两种方式的朋友:
SELECT f1.asked_user_id AS friend_id
FROM friends AS f1 JOIN friends AS f2
ON f1.asked_user_id = f2.asker_user_id
AND f1.asker_user_id = f2.asked_user_id
WHERE f1.status = 1 AND f2.status = 1
AND f1.asker_user_id = 2
所以结果为 1。因为用户 2 只有用户 1 作为双向朋友。
如何显示用户 2 的待处理请求?询问用户 2 的用户 ID 在哪里?
这 (3,2,1) 是用户 2 的待处理请求。其中 3 要求 2 成为朋友。为了让他们成为双向朋友,将使用 (2,3,1) 创建新条目。