【问题标题】:List suggested friends列出推荐的朋友
【发布时间】:2017-06-25 23:20:59
【问题描述】:

我正在尝试获取不在我的朋友中但在我的朋友中的建议朋友列表,朋友。

2 成为已接受朋友的状态。

我的会话 ID 是 34,我是用户 3 的朋友,用户 3 是用户 16 的朋友,因此用户 16 将显示为建议的朋友,因为用户 16 不是我的朋友。

好友表

id | user 1_id | user2_id | status
----------------------------------
4       3          34        2
3       34         3         2
2       3          16        2
1       16         3         2

查询(我试过的)

$user1_id=$_SESSION['id'];
$user2_id=$data['id'];
$collectmutualfriendsa = mysqli_query($mysqli,"
SELECT DISTINCT r2.user1_id
FROM
friends r
INNER JOIN friends r2
ON r.user1_id = r2.user2_id
LEFT OUTER JOIN friends r3 ON r3.user2_id = r2.user1_id AND r3.user1_id=2
WHERE r.user2_id = 2 AND r3.user1_id is null");

【问题讨论】:

    标签: php mysql left-join inner-join


    【解决方案1】:
    $user1_id = $_SESSION['id']; // 34
    $user2_id = $data['id']; // 3
    $query = "SELECT * FROM Friends_table WHERE user1_id = '$user2_id' AND user2_id != $user1_id;";
    

    【讨论】:

    • 嗨@vishnu。这个查询似乎没有给我正确的结果。它正在打印我的朋友列表中的用户 3。我想只打印我朋友列表中的朋友。所以用户 3 的任何朋友。
    • 如果您不打印 user1_id 而不是 user2_id,请检查可能
    【解决方案2】:

    好的,我尝试了一个 UNION,现在它可以工作了。

    $collectmutualfriendsa = mysqli_query($mysqli,"
    SELECT *
    FROM friends
    WHERE user2_id NOT IN
    (
       SELECT user1_id FROM friends WHERE user2_id = '$user1_id'
       UNION 
       SELECT user2_id FROM friends WHERE user2_id = '$user1_id'
    )
    
    ");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-05
      • 2018-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-03
      • 2019-08-05
      相关资源
      最近更新 更多