Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从mysql数据库中选择挂起的好友请求_Php_Mysql_Sql - Fatal编程技术网

Php 如何从mysql数据库中选择挂起的好友请求

Php 如何从mysql数据库中选择挂起的好友请求,php,mysql,sql,Php,Mysql,Sql,SQL: 表包含以下行: 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`) VALU

SQL:

表包含以下行:

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\u user\u id


这(3,2,1)是用户2的挂起请求。其中3人要求2人成为朋友。为使他们成为双向朋友,新条目将使用(2,3,1)创建

您可以通过以下方式获得peding请求:

选择f1.asker\u user\u id作为朋友\u id
来自f1的朋友
左加入朋友为f2
在f1上。询问用户id=f2。询问用户id
f1.asker\u user\u id=f2.ask\u user\u id
其中f1.status=1,f2.status为空
和f1.u用户id=2

这是你要找的吗

这将显示希望与用户2成为朋友的用户,因此用户2有2个挂起的请求

 SELECT f1.asker_user_id AS friend_id
 FROM friends AS f1 
 WHERE f1.status = 1 
 AND f1.asked_user_id = 2

什么是山脚?状态不同于1?顺便说一句,asker\u user\u id应该在
WHERE
子句中<上的code>应该只包含表之间的关系(外部联接除外,在某些情况下可能需要单个表条件)。@FilipeSilva没有挂起状态是当条目不存在时。@Barmar感谢,注意到。它本质上与
查找表A中与表B中不匹配的行相同,常见的SQL习惯用法。你的情况唯一的不同是这两张桌子是一样的。你能帮我做一下吗?又是我打扰你了:)我正试图对挂起的请求用户列表进行同样的处理。上面的查询非常有效,但我需要像其他帖子一样的信息,比如单词、用户头像和姓氏。我在这里尝试过:我复制了左连接,并且为空。本质上,f1.asker\u user\u id=2应该导致用户3,因为该用户3对用户2是挂起的。您应该为此打开一个不同的问题。因为你现在想要的东西和你原来的问题不一样,但你肯定在正确的轨道上。你可以在新问题中引用这个问题,说它是基于这个问题的。并解释新的要求你完全正确!