SQL-关联查询【转】
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-关联查询【转】的更多相关文章
- 通过Spark SQL关联查询两个HDFS上的文件操作
order_created.txt 订单编号 订单创建时间 -- :: -- :: -- :: -- :: -- :: order_picked.txt 订单编号 订单提取时间 -- :: ...
- 学习SQL关联查询
通过一个小问题来学习SQL关联查询 原话题: 是关于一个left join的,没有技术难度,但不想清楚不一定能回答出正确答案来: TabA表有三个字段Id,Col1,Col2 且里面有一条数据1,1, ...
- (一)SQL关联查询的使用技巧 (各种 join)
---恢复内容开始--- (一)SQL关联查询的使用技巧 (各种 join) 这几天因为工作的时候,发现自己的sql语句基础不是很好,特意研究了一下,发现sql语句真的是博大精深,sql语句不仅是要查 ...
- MyBatis 实践 -动态SQL/关联查询
MyBatis 实践 标签: Java与存储 动态SQL 动态SQL提供了对SQL语句的灵活操作,通过表达式进行判断,对SQL进行拼接/组装. if 对查询条件进行判断,如果输入参数不为空才进行查询条 ...
- sql关联查询—将一个表的查询结果作为新表进行查询操作
例题:# 各个部门中 最高工资中最低的那个部门的 最低工资是多少? 先考虑取得各个部门最高工资 SELECT MAX(salary) AS max_salary,e.`department_id` ...
- SQL关联查询
从2张或多张表中,取出有关联的数据 关联查询一共有几种情况: 内连接:INNER JOIN .CROSS JOIN (1)形式一 select 字段列表 from A表 inner join B表 o ...
- 通过一个小问题来学习SQL关联查询
原话题: 是关于一个left join的,没有技术难度,但不想清楚不一定能回答出正确答案来: TabA表有三个字段Id,Col1,Col2 且里面有一条数据1,1,2 TabB表有两个字段Id,Col ...
- 转载:sql关联查询
inner join(等值连接)只返回两个表中联结字段相等的行 left join(左联接)返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接)返回包括右表中的所有记录和 ...
- SQL关联查询中on与where
微信公众号:刺刺刺猬的优雅 前段时间,做一个查询,打算用left join查询存在于A表但不存在于B表记录,但怎么查都不对,原因是把所有filter全部放在了where语句中,因此回头看了资料,记录一 ...
- sql关联查询更新速度慢的问题
原语句 update B b set b.fid = (select f.id from F f where f.bid = b.id) ; 可以考虑用 begin for f in (select ...
随机推荐
- 题解—P3000 [USACO10DEC]Cow Calisthenics G
做这题之前最好学会 "树形 \(dp\) 求树的直径"这一前缀知识(虽然我会但是我还是没想出来) 几乎想到要求直径这道题也没什么问题了(这不是废话吗,为什么题面里给了"直 ...
- ubunt中,使用命令su命令切换root账户,提示认证失败
报错截图: 解决方法: sudo passwd 重新设置root账户的密码,确认root账户的密码(再次输入密码),然后su ,输入root账户刚刚设置的密码即可切入到root账户:
- C# 获得文件的执行路径的方法
var path = System.Reflection.Assembly.GetEntryAssembly().Location;
- JSP页面添加当前时间
JSP页面添加当前时间 一.时间格式化 1.引入标签 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/js ...
- 怎样在Qt中建立使用动态链接库
参考网址: https://blog.csdn.net/q496713258/article/details/6990837 qt 的学习网址: http://c.biancheng.net/view ...
- PE文件结构(32/64差异)
1 基本概念 下表描述了贯穿于本文中的一些概念: 名称 描述 地址 是"虚拟地址"而不是"物理地址".为什么不是"物理地址"呢?因为数据在内 ...
- Linux 替换^M字符
Linux 替换^M字符 在Linux下使用vim 来查看一些在Windows下创建的文本文件,有时会发现在行尾有一些"^M". 1.使用dos2unix命令.一般的分发版本中都带 ...
- mzy git学习,分支以及分支合并(四)
git 鼓励大量使用分支:最后进行master和分支之间的合并 git branch git branch 查看当前有多少分支,并且将当前在使用的分支用*标注出来. [一定要注意git的分支有从属概念 ...
- openstack新建实例各种报错解决
最近自己装了下Openstack,零基础安装,参照了网上不少教程. 吃了百家饭的后果,就是出现了一堆不明问题...openstack安装比较复杂,很多配置文件,一个地方配置不正确,可能会导致后面的功能 ...
- Spring系列之不同数据库异常如何抽象的?
前言 使用Spring-Jdbc的情况下,在有些场景中,我们需要根据数据库报的异常类型的不同,来编写我们的业务代码.比如说,我们有这样一段逻辑,如果我们新插入的记录,存在唯一约束冲突,就会返回给客户端 ...