大家好,我是新手,我需要你的帮助才能获取尚未成为朋友的用户。
这是我的表格:
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 username
FROM users AS u
WHERE NOT EXISTS (SELECT * FROM friends AS f
WHERE (f.username = 'kyle')
)
但我没有检索到任何结果。它应该显示1条记录,那就是carla。有任何想法吗?我很乐意感谢你的帮助。谢谢。另外,你能否提出更加强有力的方法呢?
答案 0 :(得分:2)
select a.username
from users a
left join friends b
on a.username= b.username
where b.username is null;
另外,一个更简单的方法是:
user table
userid username
1 kyle
2 jane
3 jim
4 carla
friends table
friendid userid friend
1 1 jane
2 2 kyle
3 1 jim
4 3 kyle
答案 1 :(得分:1)
经过长时间寻找解决方案后,这就是我所拥有的:
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'
)
我希望这也有助于其他人。