首页 > 代码库 > 类似微博判断用户关系的sql语句
类似微博判断用户关系的sql语句
类似新浪微博的关注与相互关注
不知道别人是怎么设计的。
反正我是如下设计的
ID USER FRIEND
1 A B
2 B A
3 A C
ID为自增
user为发起关注者 friend为被关注者
现在需求如下。给出A、B两用户ID如何判断A与B的关系 很简单要,是A关注B,还是A与B相互关注 一条SQL尽可能的利用索引,不用OR,尽可能的快速 (不要求得到B是否关注A)
select *
from xxxxx
where USER=‘A‘ and FRIEND=‘B‘
union all
select *
from xxxxx
where USER=‘B‘ and FRIEND=‘A‘
create table tb_user_concern
(ID int auto_increment primary key,
USER varchar(32),
FRIEND varchar(32)
);
-- 查询和A相互关注的USER
select *
from tb_user_concern a
where user = ‘A‘
and exists
(select *
from tb_user_concern b
where a.user = b.friend
and a.friend = b.user);
-- 查询A关注,但未关注A的USER
select *
from tb_user_concern a
where user = ‘A‘
and not exists
(select *
from tb_user_concern b
where a.user = b.friend
and a.friend = b.user);
-- 查询关注A,但A未关注的USER
select *
from tb_user_concern a
where friend = ‘A‘
and not exists
(select *
from tb_user_concern b
where a.user = b.friend
and a.friend = b.user);
类似微博判断用户关系的sql语句
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。