文档章节

类似微博判断用户关系的sql语句

不合法昵称
 不合法昵称
发布于 2016/02/29 17:21
字数 277
阅读 6
收藏 0

类似新浪微博的关注与相互关注 

不知道别人是怎么设计的。

反正我是如下设计的

 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);

本文转载自:http://blog.csdn.net/cjaver/article/details/39853399

共有 人打赏支持
上一篇: 浅谈mysql事务
下一篇: SSM整合
不合法昵称
粉丝 18
博文 46
码字总数 6583
作品 0
广州
高级程序员
私信 提问
【mybatis学习】--mapper.xml中常用的标签积累

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YYZZHC999/article/details/82319305 一· 常用标签组示例: 二、部分标签总结 1.sql片段标签: 通过该标签可...

Hepburn_Yang
09/02
0
0
【已解决】PHP项目需求:用户购买商品时,给上级发送一条通知(无限级下级会员)

无限级的过程 上下级会员关系通过id和pid确定。 例如:a>b>c>d>e>f>g... 就是a的下级是b,b的下级是c,c的下级是d....(有点类似传*销模式?无视掉) 需求,通过用户g查出所有的上级,则要查到...

Eller
2016/01/13
325
2
听云Server for Node.js公测开启

  【IT168 资讯】听云是国内较大的应用性能监测平台,专注于帮助开发者解决应用上线后性能问题的监控与管理。其拥有20万个遍布全国的真实用户节点,平台每日帮助监控超100亿次真实用户请求...

网易科技
2015/07/29
0
0
MyBatis 实践 -动态SQL/关联查询

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hanqing280441589/article/details/50761310 标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,...

菜鸟-翡青
2016/02/28
0
0
Mybatis应用学习(3)——Mapper映射文件编写

Mybatis的映射配置文件Mapper.xml 1.1 输入参数映射 1. 在Mapper映射文件中,可以通过parameterType指定SQL语句所要输入参数的类型,类型可以是java简单类型(String和七个基本类型以及基本类...

江左煤郎
11/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
16分钟前
1
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
33分钟前
2
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
33分钟前
6
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
52分钟前
7
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部