Php 如何为“创建查询”;“你可能认识的人”; 我需要根据用户的当前朋友来显示“你可能知道的人”,朋友建议应该考虑被阻止的用户,如果用户A被阻止的用户B,A不应该看到用户B,反之亦然,在他们的朋友建议中。 这是我的桌子结构

Php 如何为“创建查询”;“你可能认识的人”; 我需要根据用户的当前朋友来显示“你可能知道的人”,朋友建议应该考虑被阻止的用户,如果用户A被阻止的用户B,A不应该看到用户B,反之亦然,在他们的朋友建议中。 这是我的桌子结构,php,mysql,Php,Mysql,跨国公司用户 id | username | email | fullname --------------------------------------------------- 1 | userA | usera@in.in | User Alpha 2 | userB | userb@in.in | User Bravo 3 | userC | userc@im.in |

跨国公司用户

id  |   username    |   email       |   fullname
---------------------------------------------------
1   |   userA       |   usera@in.in |   User Alpha
2   |   userB       |   userb@in.in |   User Bravo
3   |   userC       |   userc@im.in |   user c
4   |   userd       |   userd@am.in |   user del
跨国公司之友

uid |   fid |   time
-------------------------
1   |   3   |   1363859398  
3   |   1   |   1363859398  
4   |   1   |   1368854898  
1   |   4   |   1368854898  
3   |   2   |   1363846116  
2   |   3   |   1363846116  
2   |   4   |   1363846116  
4   |   3   |   1363846116  
跨国公司被封锁

id  |   uid |   bid
--------------------
1   |   1   |   2
跨国公司

uid |   fid
-----------
5   |    1
在这种情况下,如何使用php和mysql显示用户建议?

试试这个

假设我们试图为userA:id=1获取人员

$user_id = 1;
sql将是

$sql = "    SELECT * FROM mnc_users WHERE id IN(
                                         SELECT fid FROM mnc_friends WHERE uid='$user_id' AND fid!='$user_id'
                                        )
                                  AND id NOT IN(
                                        SELECT bid FROM mnc_blocked WHERE uid='$user_id'
                                       )
   ";
试试这个

假设我们试图为userA:id=1获取人员

$user_id = 1;
sql将是

$sql = "    SELECT * FROM mnc_users WHERE id IN(
                                         SELECT fid FROM mnc_friends WHERE uid='$user_id' AND fid!='$user_id'
                                        )
                                  AND id NOT IN(
                                        SELECT bid FROM mnc_blocked WHERE uid='$user_id'
                                       )
   ";
如果你编辑添加一些东西,你会让它工作

$user_id = 1;

    $sql = "    SELECT * FROM mnc_users WHERE id NOT IN(
                                             SELECT fid FROM mnc_friends WHERE uid='$user_id' AND fid!='$user_id'
                                            )
                                      AND id NOT IN(
                                            SELECT bid FROM mnc_blocked WHERE uid='$user_id'
                                           )
AND id NOT IN(
                           SELECT fid FROM mnc_frnd_rqsts WHERE uid='$user_id'
                                           )
       ";
如果你编辑添加一些东西,你会让它工作

$user_id = 1;

    $sql = "    SELECT * FROM mnc_users WHERE id NOT IN(
                                             SELECT fid FROM mnc_friends WHERE uid='$user_id' AND fid!='$user_id'
                                            )
                                      AND id NOT IN(
                                            SELECT bid FROM mnc_blocked WHERE uid='$user_id'
                                           )
AND id NOT IN(
                           SELECT fid FROM mnc_frnd_rqsts WHERE uid='$user_id'
                                           )
       ";

哪些是您表中的用户建议?我没有要在页面中动态显示的建议表哪些是您表中的用户建议?我没有要在页面中动态显示的建议表此建议表不起作用它显示已在我的朋友列表中的人是现在您可以再次运行此查询为您的朋友们一个接一个的php。你会找到朋友的朋友我的意思是,如果我运行此查询,我会得到我当前的朋友列表是获取他们,然后再次对每条记录运行上面的查询,将$user\u id替换为你朋友的id。此项不起作用,它显示已经在我的朋友列表中的人是的,现在你可以通过php为你的朋友逐个运行此查询。您将找到朋友的朋友我的意思是,如果我运行此查询,我将获得我当前的朋友列表Yes get Thes并再次对每条记录运行上述查询,将$user\u id替换为您朋友的id。