我正在用php构建一个简化的社交网站。我有两张桌子,我的朋友桌和朋友桌。
myfriends表有friend_id1
和friend_id2
列。Friends表有friend_id
、profile_name
和email
列。
myfriends表将两个朋友链接在一起。假设是单向关系,而不是双向关系。这意味着朋友有朋友,但不是相反。
举例来说,我们只需要4个成员1001,1002,1003,1004
如果1001知道1002和1003(假设反之亦然),但1002、1003不知道对方,1004不知道任何人,myfriends表将包含以下条目。
(1001,1002),(1001 ,1003),(1002 ,1001),(1003, 1001)
我需要的查询将得到所有非朋友的人。这是我为得到所有朋友而提出的查询。friend_id是friends
table.myfriends
表中没有主键的主键。 SELECT friends.profile_name
FROM friends
INNER JOIN myfriends ON friends.friend_id=myfriends.friend_id1
WHERE myfriends.friend_id2='$friendID'";
希望大家都清楚这个问题。
最佳答案
$sql="select profile_name from friends
where friend_id<>login_user_id
and
friend_id NOT IN( select friend_id2 from myfriends where friend_id1=login_user_id);