之前一直单用左联查询两张表的时候没有发现,后面拼接where或者and查询出来的结果是有区别的。直到有一次我用左联接查询作为子查询的时候才发现用where和用and查询出来的结果不一样。

首先on的条件是在连接生成临时表时使用的条件, 左联则以左表为基表,不管on中的条件真否,都会返回左表中的记录 。

而where条件是在临时表生成好后,再对临时表过滤 。因此当左联查询作为子查询的时候,结果集只显示了满足where条件的数据;当and作为条件,则是进行韦恩运算时,对数据进行操作,因此当左联作为子查询的时候,结果集会受到查询字段是否是基表字段的影响。

可能文字描述的不是很好理解,上两张比较图mysql> select * from a left join b on a.sid=b.sid and a.sid=1;+----+-----+------+------+--------+| id | sid | type | sid  | remark |+----+-----+------+------+--------+|  1 |   1 | a    |    1 | A      ||  2 |   1 | b    |    1 | A      ||  3 |   2 | c    | NULL | NULL   ||  4 |   3 | d    | NULL | NULL   |+----+-----+------+------+--------+mysql> select * from a left join b on a.sid=b.sid where a.sid=1;+----+-----+------+-----+--------+| id | sid | type | sid | remark |+----+-----+------+-----+--------+|  1 |   1 | a    |   1 | A      ||  2 |   1 | b    |   1 | A      |+----+-----+------+-----+--------+

mysql左联和右联_MySQL左联、右联查询接where和and条件的区别相关推荐

  1. mysql对所有id求积_MySQL学习笔记(二)—查询

    一.多表连接查询 新建两张表t_user.t_order.       1.内连接 返回满足条件的所有记录. (1)显式内连接 使用inner join关键字,在on子句中设定连接条件. SELECT ...

  2. mysql 多表 三表 删除_mysql 多表join查询索引优化

    数据准备 CREATE TABLE IF NOT EXISTS `class` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `card` int( ...

  3. mysql的分页怎么不对_mysql一对多关联查询分页错误问题的解决方法

    xml问价中查询数据中包含list,需要使用collection .... .... 这样的查询系统封装的通用分页查询是不对的,所以需要自己sql中加入分页解决 SELECT you.nick_nam ...

  4. mysql一对多前端实现_MySQL实现一对多查询的代码示例

    本篇文章给大家带来的内容是关于MySQL实现一对多查询的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 这次要实现的是一对多查询,使用 MySQL 的 group_conca ...

  5. mysql更新数据索引慢_mysql添加索引,查询反而变慢

    依照楼主的数据,我也造了400万数据: mysql> select * from index_test limit 5; id1 id2 11111 11111 22222 22222 1111 ...

  6. mysql事务模式怎么查_Mysql InnoDB中的查询事务模式与锁定select ..for update

    在 InnoDB 的行锁中使用所谓的 next-key locking.这就意味着,除了索引记录外,InnoDB 还可以锁定该索引记录前部"间隙" ('gap') 以阻塞其它用户在 ...

  7. mysql常用四种连接_MySQL四种连接查询

    内连接 交集 inner join 或者 join select * from person join card on person.cardId = card.id; +------+------- ...

  8. mysql统计记录数据库设计_MYSQL数据库设计,查询规范

    MySQL数据库 (一)建表规约 1.[强制]表达是与否概念的字段,必须使用is_xxx的方式命名,数据类型是unsignedtinyint(1表示是,0表示否) .说明:任何字段如果为非负数,必须是 ...

  9. mysql myisam 主键关联_MySQL中myisam和innodb的主键索引有什么区别?

    MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址.下图是MyISAM索引的原理图: 这里设表一共有三列,假设我们以Col1为主键,则上图是一个MyISAM表的主索 ...

  10. mysql怎么做排名并列_MySQL实现排名并查询指定用户排名功能,并列排名功能

    MySQL实现排名并查询指定用户排名功能,并列排名功能 表结构: CREATE TABLE test.testsort ( id int(11) NOT NULL AUTO_INCREMENT, ui ...

最新文章

  1. HTTP请求头中各字段解释
  2. 初二下册计算机考试试题,2017下半年计算机等级考试二级Java模拟试题及答案(18)...
  3. 碰撞,处理碰撞,发射 Learn Unreal Engine (with C++)
  4. 天池 在线编程 有效的字符串
  5. 带你玩转Logview: MaxCompute Logview参数详解和问题排查
  6. 适合计算机类研究生参加的比赛
  7. vs2008激活、序列号
  8. SpreadJS 2021 V14.1 Crack
  9. php laravel 中文手册,Laravel 5 中文手册(二):配置
  10. 手机疑似中毒,恢复到出厂设置也不管用,还好有RE文件浏览器
  11. QT软件开发: 基于FFMPGE设计的流媒体播放器(rtmp/rtsp)
  12. python 求某月的天数
  13. 【NC204267】牛牛染颜色
  14. perf trace跟踪系统调用
  15. PLC运动控制系列之机械回原点(back to origin)
  16. 养生之道---六字气决
  17. 【Java】进制转换
  18. 数据结构的学习_4.2 矩阵的压缩存储(对称矩阵)
  19. python抓取网站访客手机号_三网运营商大数据实时截流网站访客
  20. java毕业设计汽车租赁系统演示录像源码+lw文档+mybatis+系统+mysql数据库+调试

热门文章

  1. 我喜欢的乐队-Descending
  2. 导致页面布局混乱的几个元凶
  3. 操作系统锁的实现方法有哪几种_深入理解多线程(四)——Moniter的实现原理...
  4. qt(qu chu biao ti lan /窗口非暴力置顶)
  5. 【Docker系列】从头学起 Docker——docker run 命令详解
  6. 220913_100620-华为全球校园AI算法赛事(推荐方向):广告-信息流跨域CTR预估
  7. 手机拍照反差对焦、相位对焦和激光对焦系统解析
  8. 微信突破版本限制永久设置透明/半透明头像
  9. 踩坑记32 vue3 拖拽边缘调整侧边栏宽度 拖拽条组件 宽度限制
  10. 鸡啄米:C++编程入门系列之一(进制数)