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 ...
随机推荐
- 浅谈模拟彩票代码,html,javascript
今天简单介绍一下用html,javascript来模拟双色球彩票选择器. 双色球彩票规则:由6个红球和1个蓝球组成,其中6个红球是从1-33中随机选出的不重复的6个数,从小到大一次排列:蓝球是1-16 ...
- WPF 中的DataTemplate 的嵌套
<Window x:Class="WPF.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xa ...
- wpf 中 theme 的使用 和 listview 模板的使用.
theme 文件 <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentatio ...
- .Net Framwork /.Net Core 发布为NuGet包
一.使用NuGet发布包 下载NuGet命令行工具: https://dist.nuget.org/win-x86-commandline/v5.8.0/nuget.exe 下载NuGet Packa ...
- Spark Core核心----RDD常用算子编程
1.RDD常用操作2.Transformations算子3.Actions算子4.SparkRDD案例实战 1.Transformations算子(lazy) 含义:create a new data ...
- Flink 保证ExactlyOnce
Flink 保证 ExactlyOnce 1.使用执行ExactlyOnce 的数据源,比如 kafka 2.使用FlinkConsumer,开启CheckPointing,偏移量会保存通过Check ...
- Web应用安全防护-WAF
web应用开发中不可避免需要考虑web应用的安全问题,那么常见的安全风险包含哪些呢? Web应用常见的安全风险 在web应用开发中可能存在以下的安全风险: 安全风险Top 10 A1:2017-注入 ...
- 多线程-synchorized
synchorized锁升级过程: synchorized锁升级过程中只能升级不能降级,起初是JDK早期(1.5之前),是重量级锁,是找操作系统申请OS锁.所谓重量级锁是说获取锁和释放锁都需要经过操作 ...
- LeetCode《买卖股票的最佳时机》系列题目,最详解
目录 说在前面 引例:只能交易一次 一.动态数组定义 二.状态转移方程 三.初始化 四.优化 无限制买卖 一.动态数组定义 二.状态转移方程 三.初始化 四.优化 交易 2 次,最大利润? 一.动态数 ...
- 20210811 Dove 打扑克,Cicada 与排序,Cicada 拿衣服
考场 开考感觉 T3 比较可做.T1 看上去不难但毫无思路. 先想了 25min T3,想到一个确定左端点,二分最长的右端点,甚至想到了用猫树维护区间 or and...上厕所回来发现假了,没有单调性 ...