MySQL获取尚未成为朋友的用户(自我排除)

用户名

这是我的问题的延续在这里

因此,基本上,我想获取不是我朋友的用户。但是,如果用户刚刚注册并且还没有朋友,则他应该能够看到所有用户而不是他的朋友。

在这里检查我的sql小提琴

 Users 
 id    username   
 1     kyle
 2     jane
 3     jim
 4     carla

 Friends
 id    username  friend
 1     kyle      jane
 2     jane      kyle
 3     kyle      jim
 4     jim       kyle

当我查询凯尔不是他的朋友时:

SELECT * FROM users AS u 
                    WHERE u.username NOT IN 
                    (
                        SELECT f.username FROM friends as f
                        WHERE f.username = 'kyle'
                        OR f.friend = 'kyle'
                    )

它显示的是所有用户,而不是他的朋友。但是,当我查询Carla's时,她就包含在结果集中。她还没有朋友,但是她出现在结果集中。我想从结果中删除(自己),只显示尚未显示其朋友的用户。

有任何想法吗?我很乐意为您提供帮助。谢谢!

下午77-1

您的Friends表应该相关IDs,而不应该相关Names

这就是说,这里是一个将返回所有清单查询非好友每个用户:

SELECT u1.username as `User`, GROUP_CONCAT(u2.username) as `Not friends with`
FROM Users u1
JOIN Users u2 ON u1.id <> u2.id 
LEFT JOIN Friends f ON u1.id = f.user AND u2.id = f.friend   
WHERE f.friend IS NULL
GROUP BY u1.id

SQL小提琴

对于单个用户('jim')相同:

SELECT u1.username as `User`, GROUP_CONCAT(u2.username) as `Not friends with`
FROM Users u1
JOIN Users u2 ON u1.id <> u2.id 
LEFT JOIN Friends f ON u1.id = f.user AND u2.id = f.friend   
WHERE f.friend IS NULL
      AND u1.username = 'jim'

单用户提琴

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

余烬数据中的自我参照关系(用户的朋友)

来自分类Dev

PHP子查询,在“朋友”表中选择与我成为朋友的所有用户个人资料

来自分类Dev

如何获取我不是朋友的用户Facebook相册

来自分类Dev

在Rust中,如何使自我成为特征?

来自分类Dev

在自我参照模型中成为父母

来自分类Dev

在 PHP 中获取我朋友的朋友 ID?

来自分类Dev

自我加入MySQL

来自分类Dev

自我加入MySQL

来自分类Dev

获取Facebook用户的朋友列表

来自分类Dev

JS | 从通过Facebook登录到我的网站的用户获取朋友的名字

来自分类Dev

如何使std :: make_unique成为我班上的朋友

来自分类Dev

为什么要求“自我”成为函数参数?

来自分类Dev

Mysql:多个自我加入?

来自分类Dev

在php mysql中从登录的用户和朋友表中获取状态(帖子)

来自分类Dev

Mysql获取尚未使用的行

来自分类Dev

获取登录用户的Facebook朋友列表

来自分类Dev

获取登录用户的Facebook朋友列表

来自分类Dev

使用javascript获取Facebook用户的朋友

来自分类Dev

自我调整的用户表单大小

来自分类Dev

与用户的自我加入关联

来自分类Dev

自我调整的用户表单大小

来自分类Dev

MySQL计算多个用户之间的共同朋友

来自分类Dev

Mysql加入用户表和朋友表

来自分类Dev

MYSQL自我联接获取基于MAX的行并具有

来自分类Dev

如何获取我的Facebook朋友列表?

来自分类Dev

获取自我未定义

来自分类Dev

获取错误缺少位置参数自我

来自分类Dev

获取与登录用户不是朋友的所有用户

来自分类Dev

如何加快我的“朋友列表” MySQL查询?