SQL关联查询
从2张或多张表中,取出有关联的数据

关联查询一共有几种情况:
内连接:INNER JOIN 、CROSS JOIN

(1)形式一
select 字段列表
from A表 inner join B表
on 关联条件
【where 其他筛选条件】
说明:如果不写关联条件,会出现一种现象:笛卡尔积
关联条件的个数 = n - 1,n是几张表关联
on只能和join一起用
(2) 形式二
select 字段列表
from A表 , B表
where 关联条件 【and 其他筛选条件】
外连接:左外连接(LEFT OUTER JOIN)
左连接:
第一种结果:A

select 字段列表
from A表 left join B表
on 关联条件
第二种结果:A - A∩B

select 字段列表
from A表 left join B表
on 关联条件
where 从表的关联字段 is null
右外连接(RIGHT OUTER JOIN)
第一种结果:B

select 字段列表
from A表 right join B表
on 关联条件
第二种结果:B - A∩B

select 字段列表
from A表 right join B表
on 关联条件
where 从表的关联字段 is null
全外连接(FULL OUTER JOIN)
使用union实现全连接的效果
(1)A ∪ B

select 字段列表
from A表 left join B表
on 关联条件
union
select 字段列表
from A表 right join B表
on 关联条件
(3)A ∪ B - A ∩ B

select 字段列表
from A表 left join B表
on 关联条件
where 从表的关联字段 is null
union
select 字段列表
from A表 right join B表
on 关联条件
where 从表的关联字段 is null
自连接:当table1和table2本质上是同一张表,只是用取别名的方式虚拟成两张表以代表不同的意义
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关联查询
		
原话题: 是关于一个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 ...
 
随机推荐
- Django框架08 /聚合查询、分组、F/Q查询、原生sql相关
			
Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 目录 Django框架08 /聚合查询.分组.F/Q查询.原生sql相关 1. 聚合查询 2. 分组 3. F查询和Q查询 4. o ...
 - redis入门指南(三)——  事务、过期时间、SORT命令、消息通知与管道
			
写在前面 学习<redis入门指南>笔记,结合实践,只记录重要,明确,属于新知的相关内容. 事务 1.redis中的事务由一组命令的集合组成,要么都执行,要么都不执行,同时redis的事务 ...
 - 理解Spring(一):Spring 与 IoC
			
目录 什么是 Spring Spring 的整体架构 什么是 IoC Bean 的概念 Spring 的基本使用 Spring 的两种 IoC 容器 Spring 容器的基本工作原理 Spring B ...
 - java中int相除取小数点后两位或限定位数
			
java 两个整数相除保留两位小数: http://blog.sina.com.cn/s/blog_624d755d0101cvuq.html java中,当两个整数相除时,由于小数点以后的数字会被截 ...
 - CSS上划线、下划线、删除线等方法
			
text-decoration:underline; 下划线 text-decoration:overline; 顶划线 text-decoration:line-through; 删 ...
 - python- generator生成器
			
什么是生成器? 通过列表生成式,我们可以直接创建一个列表,但是,受到内存限制,列表容量肯定是有限的,而且创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后 ...
 - Vue全家桶之一Vue(基础知识篇)
			
全家桶:Vue本身.状态管理.路由. 异步组件:
 - 由一个计数器出发:关于vue使用独立js文件的问题
			
最近有个vue项目要用ztree. 然后,我想把一些逻辑提出来作为公共的方法,放到独立的js文件里. ztreeTool.js import $ from 'jquery' export defaul ...
 - Hexo 踩坑:jquery 报错
			
今天玩了一下Hexo(一个基于node.js的静态博客框架),结果部署到服务器上后发现了一个报错. jquery未定义. jquery怎么会报错呢?一看是找不到链接上的文件. //ajax.googl ...
 - Bing每日壁纸API
			
懒人直接出图 https://www.shadow-forum.com/api/bing/bing.php API API地址: https://bing.biturl.top 调用方式: HTTP ...