我们经常聊QQ,如果A加了B,但是B没有加A为好友,那么在B这显示A就是陌生人,在数据库里面,要怎么查询出来呢?
SqlServer
Select * from db.FriendsInfo
这里面,hostid是自己的账号,friendid是朋友的账号,比如自己的账号是10004,那么只有一个10005这个朋友,但是10005,10006,10007,10008都加了10004为好友,那么怎么把这些人查询出来呢?
这个是用户的信息表,怎么查出陌生人的信息呢?
SELECT * FROM dbo.UserInfo WHERE id in
(SELECT b.HostId FROM
((SELECT * FROM dbo.FriendsInfo WHERE HostId=10004) AS a RIGHT join
(SELECT * FROM dbo.FriendsInfo WHERE FriendId=10004) AS b
ON a.FriendId=b.HostId
) WHERE a.HostId IS NULL) 这样就可以实现了,是不是很简单呢?