微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sql查询朋友的朋友

我知道如何在1个查询中获得mutal朋友,但现在来了困难的部分,我怎样才能得到所有朋友朋友,这些朋友在1个查询中并不是我的朋友,返回用户ID?我已经看了一些关于这个的帖子,但我无法按照我的意愿让它们工作.

我的关系是两种方式,因此如果1和2是朋友,则关系表中存在两行.

我的表格及相关信息:

table_users
user_id
table_relations
rel_id
from_id
to_id

我现在已经用了2天了,我似乎无法让它发挥作用.

最好的问候,
亚历山大

最佳答案
假设你的id为1

/*Your friends' friends*/
SELECT r2.from_id FROM
table_relations r
INNER JOIN table_relations r2
ON r.from_id = r2.to_id
WHERE r.to_id = 1
EXCEPT /*EXCEPT is Standard but MINUS in Oracle*/
/*Your friends*/
SELECT from_id
FROM table_relations
WHERE to_id = 1

或者使用OUTER JOIN

SELECT disTINCT r2.from_id
FROM
table_relations r
INNER JOIN table_relations r2
ON r.from_id = r2.to_id
LEFT OUTER JOIN table_relations r3 ON r3.to_id = r2.from_id AND r3.from_id=1
WHERE r.to_id = 1 AND r3.from_id is null

原文地址:https://www.jb51.cc/mysql/432983.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐