【发布时间】:2010-02-19 13:05:11
【问题描述】:
我有这个问题。给定一个包含用户在社交网络中的用户名的 users 表和包含用户名和用户名的 friends 表,如下所示...
username friendname
John Thomas
Chris James
...如果用户在我的网络中,我正在尝试编写一个 SQL 语句。换句话说 该用户是朋友还是朋友的朋友?
我一直在解决这个问题,只能提出这个问题:
SELECT f2.username, f2.friendname
FROM friends f2
WHERE f2.username IN (
SELECT f1.friendname
FROM friends f1
WHERE f1.username = 'Thomas')
AND f2.friendname <> 'user1'
AND f2.friendname = 'user2';
它基本上检查用户是否是我朋友的朋友,即如果为假,则返回 null。
试图弄清楚如何扩展以通过我所有的朋友网络。我的意思不仅仅是我朋友的朋友。
【问题讨论】:
标签: sql oracle social-networking