文档章节

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

烤猪佩奇
 烤猪佩奇
发布于 2016/02/29 17:21
字数 277
阅读 6
收藏 0
点赞 1
评论 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

共有 人打赏支持
烤猪佩奇
粉丝 18
博文 46
码字总数 6583
作品 0
广州
高级程序员
iOS开发系列--数据存取

概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库。例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档、plist文件存储,包括偏好设...

jianxin160 ⋅ 2015/08/18 ⋅ 0

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

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

Eller ⋅ 2016/01/13 ⋅ 2

MyBatis 实践 -动态SQL/关联查询

标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装. if 对查询条件进行判断,如果输入参数不为空才进行查询条件的拼接. mapper 会自动处理...

hanqing280441589 ⋅ 2016/02/28 ⋅ 0

听云Server for Node.js公测开启

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

网易科技 ⋅ 2015/07/29 ⋅ 0

hibernate—QBC

QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口。我们看下面的示例程序: Criteria criteria=...

北京_ ⋅ 2014/11/09 ⋅ 0

求一个sql语句~~~~

场景如下: 微博表:id | content | userid 用户关系表 id | userid | followid 现在想获取用户和自己的所有的微博信息, select content from weibo w where w.userid = (select followid ...

王宁_Kalor ⋅ 2012/04/08 ⋅ 2

Hibernate QBC查询

转载自iteye的iorit2003博客 QBC查询: QBC查询就是通过使用Hibernate提供的Query By Criteria API来查询对象,这种API封装了SQL语句的动态拼装,对查询提供了更加面向对象的功能接口。我们看...

hlyton ⋅ 2013/08/28 ⋅ 0

eric_1989/jfire-sql

#Jfire-Sql框架 [TOC] ##框架说明## Jfire-sql是一个sql映射框架,通过将一个接口方法和sql语句绑定,来达到调用方法就是发出sql语句的目的。框架提供了透明自动的结果到对象,对象集合的转换...

eric_1989 ⋅ 2015/09/02 ⋅ 0

mysql如何临时禁用触发器

mysql如何临时禁用触发器 起因   Mysql的触发器,在触发控制上,只能按照对数据的操作方式(Insert,Update,Delete)以及操作前后(before,after)进行触发控制。但是如果碰到以下需求又...

Tek_Eternal ⋅ 2015/02/20 ⋅ 1

集群之MYsql主从服务之引伸出Mysql互为主从(环形结构)外加简单实现自己个人的负载均衡器(3)

备注: 本人资历很浅,说的不对话,万望各位前辈不要计较, 另关于环形的问题,我在后面的评论给予回复, 其实环形,解决多地域问题比较好的选择 关于配置步骤我重新整理了一下(主从AND环形...

小洋哥 ⋅ 2014/05/21 ⋅ 55

没有更多内容

加载失败,请刷新页面

加载更多

下一页

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 33分钟前 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 40分钟前 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 47分钟前 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 57分钟前 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

容器之查看minikue的environment——minikube的环境信息

执行如下命令 mjduan@mjduandeMacBook-Pro:~/Docker % minikube docker-envexport DOCKER_TLS_VERIFY="1"export DOCKER_HOST="tcp://192.168.99.100:2376"export DOCKER_CERT_PATH="/U......

汉斯-冯-拉特 ⋅ 昨天 ⋅ 0

mysql远程连接不上

设置了root所有hosts远程登录,可是远程登录还是失败,原因可能如下: 登录本地数据库 mysql -uroot -p123456 查询用户表 mysql> select user,host,password from mysql.user; 删除密码为空的...

冰公子 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部