我想列出$_SESSION [‘userid’]跟随但不跟随的所有人员

以下查询适用于以下演员,它可以正常工作

IN(慢)

SELECT user.* FROM user

WHERE user.userid

IN (SELECT follow.followtoid FROM follow

WHERE follow.followerid = $_SESSION['userid'])

加入(快速)

SELECT p.*

FROM user p

JOIN follow f ON p.userid = f.followtoid

WHERE f.followerid = $_SESSION['userid']

对于那些仍不遵循演员表的人,它可以工作,但是看起来很慢

请建议我如何使用JOIN而不是NOT IN

不在(慢)

SELECT user.* FROM user

WHERE user.userid

NOT IN (SELECT follow.followtoid FROM follow

WHERE follow.followerid = $_SESSION['userid'])

解决方法:

您可以使用LEFT JOIN并消除所有具有匹配项的行;

SELECT p.*

FROM user p

LEFT JOIN follow f

ON p.userid = f.followtoid

AND f.followerid = $_SESSION['userid']

WHERE f.followtoid IS NULL

标签:query-performance,join,select,sql,mysql

来源: https://codeday.me/bug/20191029/1959873.html

mysql join 替代办法_mysql-如何使用JOIN代替子查询(NOT IN)相关推荐

  1. mysql group by 无效_Mysql5.7版本group by 子查询中order by 无效的问题解决办法

    我们都知道group by 会选择保留第一条数据,默认是按照id排序的,如果我们想通过别的字段排序,比如最后创建的那条记录,可以先按照创建时间降序,再group by即可得到每个分组的最新创建的数据. ...

  2. mysql inner join多条件_Mysql中Left Join Right Join Inner Join where条件的比较

    建立一对多的表 company 和 employee company表 id      name      address 1baidu北京 2huawei深圳 3jingdong北京 4tengxu ...

  3. mysql like 替代算法_mysql – 什么是替代连接查询

    表:项目 +---+-----------+ |id | name | +---+-----------+ | 1 | Product-A | | 2 | Product-B | +---+----- ...

  4. mysql子查询查询子字段_MySQL知识整理7.4—子查询

    数据科学探路者:MySQL知识整理7.3-连接查询​zhuanlan.zhihu.com 四.子查询 什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询.子查询可以使用几个简单命令构造功能强 ...

  5. mysql 连边聚合_MySQL分组,聚合函数,连表查询,子查询

    >>>分组: group by + group_concat 分组:类似于将一个班级的学生,按照性别或其他条件,分成若干个组,最终以小组为单位显示,如上图中,以post字段对表进行分 ...

  6. MySQL第九章索引_MySQL高级(索引优化+慢查询定位)

    一.先谈谈事务 1. ACID特性 1.1 原子性: 事务是最小的执行单位,不允许分割.事务的原子性确保动作要么全部完成,要么完全不起作用: 1.2 一致性: 执行事务前后,数据库从一个一致性状态转换 ...

  7. mysql exists依赖查询_MySQL EXISTS 和 NOT EXISTS 子查询

    MySQL EXISTS 和 NOT EXISTS 子查询语法如下: 1 SELECT ... FROM table WHERE EXISTS (subquery) 该语法可以理解为:将主查询的数据, ...

  8. mysql 更新子表_mysql 在update中实现子查询的方式

    当使用mysql条件更新时--最先让人想到的写法 UPDATE buyer SET is_seller=1 WHERE uid IN (SELECT uid FROM seller) 此语句是错误的, ...

  9. mysql left join第一个_MySQL 之 LEFT JOIN 避坑指南

    现象 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对join.on.where等关键字的不 ...

最新文章

  1. Java虚拟机的静态常量池和运行时常量池
  2. MapReduce关系代数运算
  3. rz安装 xshell_利用XShell上传、下载文件(使用sz与rz命令)
  4. 基于多域连接卷积神经网络的精神分裂症脑功能网络分类
  5. bzoj3715 [PA2014]Lustra
  6. RabbitMQ direct交换机
  7. 反射(类的加载概述和加载时机)
  8. Android代码数字证书,有关Android中读取证书
  9. 重力加速度换算_中考物理重难点汇总——公式换算大全
  10. 涉及子模块_COMSOL Multiphysics 5.6 RF模块更新详解
  11. c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序.doc
  12. 祖国60岁生日,我在北京度过。
  13. Scherlokk for Mac(文件搜索软件)
  14. 合成器插件Sylenth1 2.2.1绿化版亲测有效
  15. 五种主流的虚拟化技术
  16. 课题申报书范文_课题优秀申报书 课题申报书范例
  17. 信息学奥赛一本通C++语言——1129:统计数字字符个数
  18. 计算机电子表格题教程,计算机电子表格题教程.doc
  19. 班级量化考核系统php代码,班级管理量化考核及评分细则
  20. Window10设置图标名、文件名的字体大小方法

热门文章

  1. WINSYS DAY01:一步一步教你win10是如何远程win server2016 全过程。
  2. open-falcon 分布式安装
  3. 5分钟搞定100%正确的产品工艺单
  4. T100的引导式作业转为客制模组注意事项
  5. 《数学之美》PPT配套讲稿
  6. python中字典是什么类型_Python入门-Python中的基本数据类型-dictionary(字典)
  7. MathType公式编辑文本复制粘贴选项
  8. java 工厂模式实现_Java三种实现工厂模式的方法
  9. java实现将文件或图片压缩成zip包
  10. 行至水穷处,坐看云起时