类似微博判断用户关系的sql语句
2014-10-07 13:16
260 查看
类似新浪微博的关注与相互关注
不知道别人是怎么设计的。
反正我是如下设计的
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'
不知道别人是怎么设计的。
反正我是如下设计的
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语句
- T-SQL是否有循环语句?类似C语言的for?如何查看有哪些用户连接到服务器上?如何强制其退出?
- 使用SQL语句赋予SQL Server数据库登录用户权限
- 一种包含类似如下字段的分割SQL语句。
- 判断数据库中对象(表、视图等)是否存在的SQL语句
- oracle用什么SQL语句判断表存不存在
- oracle用什么SQL语句判断表存不存在
- 在SQL语句insert into中,数据来自用户页面的输入和另一个表中的命令行写法!
- 一段用于清空数据库中所有的用户表的SQL语句[原创]
- Access中如何用 Jet SQL 语句删除表关系?
- 在ASP中判断SQL语句是否执行成功
- 在SQLServer 2000中,使用SQL语句判断某一字段是否为空
- 获取oracle中某一用户某一表空间下的表、列注释说明的SQL查询语句
- 一条sql语句判断数据是否存在
- SQL语句判断某表是否存在
- T-SQL语句显示级联依赖关系
- 使用SQL语句取消SQL Server数据库登录用户权限
- SQL条件判断语句
- SQL语句判断并插入表
- 如何用 jet sql 的 ddl 语句建立删除表和关系?