背景:有followers表和user_basic表。
需求:要根据用户id查出跟他互关的用户id和留给他的备注名(followers表),以及这些用户的基本信息(user_basic表)。

 SELECT tb1.followId,tb2.followId,tb1.followFrom,tb1.followTo,tb1.memoName,u.portrait,u.nickName FROM followers tb1INNER JOIN followers tb2 ON tb1.followFrom=tb2.followTo AND tb1.followTo=tb2.followFrom AND tb2.followStatus='1'LEFT JOIN user_basic uON u.uid=tb1.followToWHERE tb1.followFrom=471 AND tb1.followStatus='1'LIMIT 0,30

有个很烦的东西是followStatus=‘1’这个条件。
当它为1时表示该条记录有效,为0时表示被逻辑删除。
如果将follwers表 left join 自身进行连接,会导致tb2.followStatus为‘0’时,仍然会查出这条记录,而tb2.followId 为 NULL, 这不符合我们的需求,如果tb2.followStatus为‘0’,说明这个用户曾经关注过我,但是后来取关了,那么我跟他之间就不再有互关关系。

所以要用 inner join进行连接并把tb2.followStatus='1’当作连接条件的一部分,当tb2.followStatus为‘0’时,该条记录就不会被查到。

sql查询互相关注关系相关推荐

  1. sql 查询相互关注的人

    sql 查询相互关注的人 现在有一张表为fans(粉丝表) 里面有两个字段from_user,to_user ,代表from_user关注了to_user 简单的写法sql,我也是这种写法

  2. SQL查询入门(中篇)

    引言 在前篇文章中(SQL查询入门(上篇),我对数据库查询的基本概念以及单表查询做了详细的解释,本篇文章中,主要说明SQL中的各种连接以及使用范围,以及更进一步的解释关系代数法和关系演算法对在同一条查 ...

  3. SQL查询入门(上篇)

    SQL语言是一门简单易学却又功能强大的语言,它能让你快速上手并写出比较复杂的查询语句.但对于大多数开发者来说,使用SQL查询数据库并没有一个抽象的过程和一个合理的步骤,这很可能会使在写一些特定的SQL ...

  4. olap与mysql_MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方案就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比如开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  5. MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方式就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比方开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  6. 震惊!阿里的程序员竟被一个简单的 SQL 查询难住了!

    作者 | 唐磊 责编 | Carol 来源 | 程序猿石头 封图 | CSDN 付费下载于视觉中国 最近工作上遇到一个"神奇"的问题,或许对大家有帮助,因此形成本文. 问题大概是, ...

  7. olap mysql_MySQL与OLAP:分析型SQL查询最佳实践探索

    搞点多维分析,糙快猛的解决方式就是使用ROLAP(关系型OLAP)了.数据经维度建模后存储在MySQL,ROLAP引擎(比方开源的Mondrian)负责将OLAP请求转化为SQL语句提交给数据库.OL ...

  8. SQL 查询的分布式执行与调度

    作者:张茄子算法. 分布式技术和函数式编程爱好者 OLAP 是大数据分析应用非常重要的组成部分.这篇文章是介绍 OLAP 任务在并发/分布式环境下执行和调度的算法和模型的.我们将从最简单的 Volca ...

  9. Scrapy豆瓣爬虫 爬取用户以及用户关注关系

    文章目录 明确任务 1.新建mysql数据库以及数据表 1.1 创建数据库 1.2 创建用户信息表users 1.3 创建用户关注表user_follows 笔记一: mysql中utf8与utf8m ...

最新文章

  1. 纯Rust编写的机器学习框架Neuronika,速度堪比PyTorch
  2. ThinkingInJava_3
  3. Linux下samba服务器的搭建和配置
  4. Ping命令检测网站运行状态
  5. 机械厂html5手机模板,营销型机械消费设备企业通用织梦模板(带html5手机端) v1.0...
  6. 基于 MaxCompute + Hologres 的人群圈选和数据服务实践
  7. 2020idea插件怎么同步_VScode 插件整理
  8. Java高并发编程详解系列-Java线程入门
  9. Spring Boot项目中使用RestTemplate调用https接口出现 unable to find valid certification path to requested target
  10. SplitContainer.SplitterDistance属性值设置应注意的与FixedPanel有关
  11. OpenCV-闭运算(CLOSE)
  12. java 程序打包成jar_把Java程序打包成jar文件包并执行的方法
  13. mysql grant命令详解_mysql grant命令详解 设置mysql远程连接
  14. C语言实例:斐波那契数列
  15. 微信小程序 上传图片(多张/单张)
  16. uni-app中使用腾旭位置服务,实现周边搜索功能,并获取到前往对应位置所需的时间(步行或驾车)
  17. 拖拉机(寒假每日一题 4)
  18. 去了字节跳动,才知道年薪40W的测试有这么多?
  19. 【Unity3D】阴影原理及应用
  20. 鸿合一体机触屏没反应怎么办_电脑一体机触摸屏没反应 触摸屏电脑一体机常见故障解决方法...

热门文章

  1. ​ MinIO​使用
  2. 电子万年历matlab仿真
  3. 用数组给selec元素插入选项
  4. 感受一下卸载“腾讯电脑管家”的痛
  5. rowspan 动态变化_rowspan相同值合并 怎么动态的rowspan合并行
  6. 7.类型转换、消息处理与国际化
  7. 学霸是怎样进行自我管理的?
  8. C语言str系列库函数
  9. InitializeComponent()方法
  10. 二八原理:你必须知悉的二八原理