T_A A表 T_B B标,id为表与表相关联的字段`
创建相关表结构

CREATE TABLE Table_B( id INT(2), serNum VARCHAR(10) );
CREATE TABLE Table_A( id INT(2), serNum VARCHAR(10) );
INSERT INTO table_a (id, serNum)
VALUES (1,'A000101'),(2,'A000102'),(3,'A000103'),(5,'A000104'),(8,'A000105'),(4,'A000106');
INSERT INTO table_b (id, serNum)
VALUES (1,'B000201'),(2,'B000202'),(3,'B000203'),(6,'B000204'),(7,'B000205'),(9,'B000206');

Table_A
id serNum
------ ---------
1 A000100
2 A000102
3 A000103
5 A000104
8 A000105
4 A000106

Table_B
id serNum
------ ---------
1 B000201
2 B000202
3 B000203
6 B000204
7 B000205
9 B000206

1. inner join 内连接查询

SELECT a.*,b.*
FROM table_a a
INNER JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203

注释:INNER JOIN与JOIN是相同的。

2. left join 左关联查询

以左表作为基础表去关联右表,查询的结果为左表的子集

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203
5 A000104 (NULL) (NULL)
8 A000105 (NULL) (NULL)
4 A000106 (NULL) (NULL)

3.right join 右关联查询

以右表作为基础表去关联左表,查询的结果为右表的子集

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id

查询结果:
id serNum id serNum
------ ------- ------ ---------
1 A000100 1 B000201
2 A000102 2 B000202
3 A000103 3 B000203
(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206

4.左连接-内连接

取左表的部分集合,但又不存在右表中

SELECT a.*,b.*
FROM table_a a
LEFT JOIN table_b b
ON a.id=b.id
WHERE b.id IS NULL

查询结果:
id serNum id serNum
------ ------- ------ --------
5 A000104 (NULL) (NULL)
8 A000105 (NULL) (NULL)
4 A000106 (NULL) (NULL)

5. 右连接-内连接

取有表的部分数据,但又不存在左表中

SELECT a.*,b.*
FROM table_a a
RIGHT JOIN table_b b
ON a.id=b.id
WHERE a.id IS NULL

查询结果:
id serNum id serNum
------ ------ ------ ---------
(NULL) (NULL) 6 B000204
(NULL) (NULL) 7 B000205
(NULL) (NULL) 9 B000206

SQL-关联查询【转】的更多相关文章

  1. 通过Spark SQL关联查询两个HDFS上的文件操作

    order_created.txt   订单编号  订单创建时间 -- :: -- :: -- :: -- :: -- :: order_picked.txt   订单编号  订单提取时间 -- :: ...

  2. 学习SQL关联查询

    通过一个小问题来学习SQL关联查询 原话题: 是关于一个left join的,没有技术难度,但不想清楚不一定能回答出正确答案来: TabA表有三个字段Id,Col1,Col2 且里面有一条数据1,1, ...

  3. (一)SQL关联查询的使用技巧 (各种 join)

    ---恢复内容开始--- (一)SQL关联查询的使用技巧 (各种 join) 这几天因为工作的时候,发现自己的sql语句基础不是很好,特意研究了一下,发现sql语句真的是博大精深,sql语句不仅是要查 ...

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

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

  5. sql关联查询—将一个表的查询结果作为新表进行查询操作

    例题:#  各个部门中 最高工资中最低的那个部门的 最低工资是多少? 先考虑取得各个部门最高工资 SELECT MAX(salary) AS max_salary,e.`department_id` ...

  6. SQL关联查询

    从2张或多张表中,取出有关联的数据 关联查询一共有几种情况: 内连接:INNER JOIN .CROSS JOIN (1)形式一 select 字段列表 from A表 inner join B表 o ...

  7. 通过一个小问题来学习SQL关联查询

    原话题: 是关于一个left join的,没有技术难度,但不想清楚不一定能回答出正确答案来: TabA表有三个字段Id,Col1,Col2 且里面有一条数据1,1,2 TabB表有两个字段Id,Col ...

  8. 转载:sql关联查询

    inner join(等值连接)只返回两个表中联结字段相等的行 left join(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接)返回包括右表中的所有记录和 ...

  9. SQL关联查询中on与where

    微信公众号:刺刺刺猬的优雅 前段时间,做一个查询,打算用left join查询存在于A表但不存在于B表记录,但怎么查都不对,原因是把所有filter全部放在了where语句中,因此回头看了资料,记录一 ...

  10. sql关联查询更新速度慢的问题

    原语句 update B b set b.fid = (select f.id from F f where f.bid = b.id) ; 可以考虑用 begin for f in (select ...

随机推荐

  1. 解决Git中fatal: refusing to merge unrelated histories

    原文链接: https://blog.csdn.net/wd2014610/article/details/80854807 Git的报错 在使用Git的过程中有时会出现一些问题,那么在解决了每个问题 ...

  2. docker commit (从容器创建一个新的镜像)

    从容器创建一个新的镜像 docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] -a :提交的镜像作者: -c :使用Dockerfile指令来创建镜 ...

  3. Windows安装Linux虚拟机(CentOS7)

    一.在电脑上安装虚拟机,百度搜索vmware,下载后傻瓜式安装即可. 二.CentOS下载,阿里云镜像:http://mirrors.aliyun.com/centos/7/isos/x86_64/. ...

  4. Asp.NetCore 中Aop的应用

    前言 其实好多项目中,做一些数据拦截.数据缓存都有Aop的概念,只是实现方式不一样:之前大家可能都会利用过滤器来实现Aop的功能,如果是Asp.NetCore的话,也可能会使用中间件: 而这种实现方式 ...

  5. 五:HttpServletResponse对象

    一.HttpServletResponse对象介绍 HttpServletResponse对象代表服务器的响应.这个对象中封装了向客户端发送数据.发送响应头,发送响应状态码的方法.查看HttpServ ...

  6. mfc HackerTools防止程序双开

    来自:https://github.com/TonyChen56/HackerTools 1 HANDLE hMutex = CreateMutexA(NULL, FALSE, "GuiSh ...

  7. excel控件只为简单写入数据表--github找到ExcelUtil笔记

    github地址 https://github.com/SargerasWang/ExcelUtil 文档地址 https://sargeraswang.com/blog/2018/11/27/exc ...

  8. Mybatis一对一、一对多、多对多查询。+MYSQL

    场景:使用三张数据表:student学生表.teacher教师表.position职位表 一个学生可以有多为老师.一位老师可以有多个学生.但是一个老师只能有一个职位:教授.副教授.讲师:但是一个职位可 ...

  9. unitest单元测试TestCase 执行测试用例(一)

    前言 unittest单元测试框架不仅可以适用于单元测试,还可以适用自动化测试用例的开发与执行,该测试框架可组织执行测试用例,并且提供了丰富的断言方法,判断测试用例是否通过,最终生成测试结果. uni ...

  10. rabbitMq队列长度限制

    x-max-length:队列最大容纳消息条数 大于设置条数的时候会把,消息队列头部(先进入消息)的消息移除 x-max-length-bytes:队列最大容量消息内存容量服务端限流内存控制流量:40 ...