2019独角兽企业重金招聘Python工程师标准>>>

下面是例子分析
表A记录如下:
aID     aNum
1   a20050111
2   a20050112
3   a20050113
4   a20050114
5   a20050115 表B记录如下:
bID     bName
1   2006032401
2   2006032402
3   2006032403
4   2006032404
8   2006032408 创建这两个表SQL语句如下:
CREATE TABLE a
aID int( 1 ) AUTO_INCREMENT PRIMARY KEY ,
aNum char( 20 )
)
CREATE TABLE b(
bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
bName char( 20 )
) INSERT INTO a
VALUES ( 1, 'a20050111' ) , ( 2, 'a20050112' ) , ( 3, 'a20050113' ) , ( 4, 'a20050114' ) , ( 5, 'a20050115' ) ; INSERT INTO b
VALUES ( 1, ' 2006032401' ) , ( 2, '2006032402' ) , ( 3, '2006032403' ) , ( 4, '2006032404' ) , ( 8, '2006032408' ) ; 实验如下:
1.left join(左联接) sql语句如下:
SELECT * FROM a
LEFT JOIN b
ON a.aID =b.bID 结果如下:
aID     aNum            bID         bName
1       a20050111   1       2006032401
2       a20050112   2       2006032402
3       a20050113   3       2006032403
4       a20050114   4       2006032404
5       a20050115   NULL        NULL
(所影响的行数为 5 行) 结果说明:
left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的.
换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID).
B表记录不足的地方均为NULL. 2.right join(右联接) sql语句如下:
SELECT * FROM a
RIGHT JOING b
ON a.aID = b.bID 结果如下:
aID     aNum        bID         bName
1   a20050111   1       2006032401
2   a20050112   2       2006032402
3   a20050113   3       2006032403
4   a20050114   4       2006032404
NULL    NULL        8       2006032408
(所影响的行数为 5 行) 结果说明:
仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. 3.inner join(相等联接或内联接) sql语句如下:
SELECT * FROM a
INNER JOIN b
ON a.aID =b.bID 等同于以下SQL句:
SELECT *
FROM a,b
WHERE a.aID = b.bID 结果如下:
aID     aNum        bID         bName
1   a20050111   1       2006032401
2   a20050112   2       2006032402
3   a20050113   3       2006032403
4   a20050114   4       2006032404 结果说明:
很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录.
LEFT JOIN操作用于在任何的 FROM 子句中, 组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即
使在第二个(右边)表中并没有相符值的记录。 语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2
说明:table1, table2参数用于指定要将记录组合的表的名称。
field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的
名称。
compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。
如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。

转载于:https://my.oschina.net/hujunil1/blog/93940

mysql left join,right join,inner join用法分析相关推荐

  1. MYSQL学习笔记 (三)JOIN用法

    数据库的操作分开增删改查,其中查询操作基本占系统的90%,大家所说的优化SQL语句基本是优化查询语句.接下来将学习JOIN的用法,JOIN包括:INNER JOIN(内连接).LEFT JOIN(左外 ...

  2. mysql left/right join算法效率分析_mysql left join,right join,inner join超详细用法分析

    MySQL left join,right join,inner join超详细用法分析 下面是例子分析 表A记录如下: aID        aNum 1           a20050111 2 ...

  3. mysql 联表比对,MySQL联表查询详解/超详细mysql left join,right join,inner join用法分析比较...

    超详细mysql left join,right join,inner join用法分析 下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a200 ...

  4. mysql 多个left join_mysql多个left join连接查询用法分析

    本文实例讲述了mysql多个left join连接查询用法.分享给大家供大家参考,具体如下: mysql查询时需要连接多个表时,比如查询订单的商品表,需要查询商品的其他信息,其他信息不在订单的商品表, ...

  5. 数据基础---mysql数据库操作(二)---JOIN用法

    mysql的john用法总结 左"的笛卡尔积和"右"的笛卡尔积 根据mysql join 连接的方式我把它归为两类,"左"的笛卡尔积和"右& ...

  6. MySQL的JOIN(一):用法

    JOIN的含义就如英文单词"join"一样,连接两张表,大致分为内连接,外连接,右连接,左连接,自然连接.这里描述先甩出一张用烂了的图,然后插入测试数据. 复制代码 CREATE ...

  7. Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别

    对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对 于Select出来的结果集是什么样子有点不是很清楚.Codi ...

  8. 案例理解LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法

    文章目录 建立相关表 七大JOIN Inner JOIN Left JOIN Left Excluding JOIN Right JOIN Right Excluding JOIN FULL Oute ...

  9. MySQL EXPLAIN详解,left join和in优化详解,以及optimizer_trace跟踪语句使用

    最近优化mybaits的sql语句性能,网上查了查mysql的explain用法,这里记录一下,希望对大家有帮助. EXPLAIN简述: explain为mysql提供语句的执行计划信息.可以应用在s ...

  10. mysql支不支持fulljoin_mysql full join 报错(无效)解决方式

    前些天在做数据统计的时想使用全表链接查询,于是使用full join 链接但是报错了,而其他的left join和right join是正常的,这样可以肯定的是full join出了问题.难道是mys ...

最新文章

  1. 利用Unity3D制作简易2D计算器
  2. thinkJava@第五章@隐藏实施过程
  3. 单链表的增删查改等基本操作C++实现
  4. leetcode 438. Find All Anagrams in a String | 438. 找到字符串中所有字母异位词(Java)
  5. matlab图片压缩
  6. 算法-排序-计数排序(包含对非负数和整数的排序)
  7. 好久不更新这个博客了。
  8. android动画影子效果,Android TV常用动画的效果,View选中变大且有阴影(手机也能用)...
  9. diskgenius 数据迁移_U盘格式化后数据恢复免费方法教程
  10. 汉字Unicode编码规范
  11. Ubuntu22.04 x64 下运行同花顺Linux版,解决libssl版本错误问题
  12. 高斯 matlab程序,一个计算高斯积分点坐标和权的MATLAB程序
  13. css 设置冻结表格头,固定/冻结行表头、列表头的做法
  14. linux屏幕触碰事件,触摸屏中鼠标事件的捕获和传递及触摸屏的移植
  15. netty: LEAK: ByteBuf.release() was not called before it‘s garbage-collected
  16. 建立集群——rsh(remote shell)实现无密码访问
  17. mininet sflow 资料和经验
  18. 会议,如何从智能走向智慧?——四川有生发布智慧会议平台
  19. Struts2的常量及配置:
  20. 短信接口防刷,限制IP的访问 部分笔记!

热门文章

  1. Virtualbox安装使用注意
  2. Python3中生成器介绍
  3. Caffe源码中math_functions文件分析
  4. 常用排序算法的C++实现
  5. 【c语言】C语言配置文件解析库——iniparser
  6. css删除线_前端删除文字贯穿线的方法有哪些
  7. unity2018关联不到vs_律道|蓝月传奇VS烈焰武尊:角色扮演类游戏独创性如何认定?...
  8. 【二级java】模拟题知识点总结
  9. 微信小程序如何搭建本地环境开发
  10. Angular 路由