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 的 questions_user_id 位于何处?
此 (3,2,1) 是用户 2 的待处理请求。其中 3 要求 2 成为好友。为了使他们成为双向 friend ,将使用 (2,3,1) 创建新条目。
最佳答案
您可以通过以下方式获取 peding 请求:
SELECT f1.asker_user_id AS friend_id
FROM friends AS f1
LEFT 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 IS NULL
AND f1.asked_user_id = 2
关于php - 如何从数据库mysql中选择待处理的好友请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19775680/