php - 如何为 "People You May Know"构建查询

标签 php mysql

<分区>

我需要根据用户的当前好友显示“你可能认识的人”,好友建议应该考虑被屏蔽的用户,如果用户 A 屏蔽了用户 B,A 不应该在他们的好友建议中看到用户 B,反之亦然 这是我的表结构

mnc_用户

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

mnc_friends

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  

mnc_blocked

id  |   uid |   bid
--------------------
1   |   1   |   2

mnc_frnd_rqsts

uid |   fid
-----------
5   |    1

在这种情况下,我如何使用 php 和 mysql 显示用户建议?

最佳答案

如果你编辑this answer添加一些东西你就会让它工作

$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 - 如何为 "People You May Know"构建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20716390/

相关文章:

mySQL 用 JOIN 计算出现次数

mysql - 使用 Python 从数组在 MySQL 中插入多个值

php - 从index.html随机重定向到另一个文件

php - 复制带有引用的数组;如何仅获取值

php - 如何防止两个用户同时访问 MySQL 表?

MYSQL 转置查询复杂

mysql select 包含范围信息

php - 如何显示表数组中的最高 ID

php - 从多个插入查询中恢复生成的 ID

php - 如何检查键数组是否具有相同的值或多个值