图解SQL的inner join、left join、right join、full outer join、union、union all的区别
转自:http://blog.csdn.net/jz20110918/article/details/41806611
假设我们有两张表。Table A 是左边的表。Table B 是右边的表。其各有四条记录,其中有两条记录name是相同的,如下所示:让我们看看不同JOIN的不同
| A表 | |
| id | name | 
| 1 | Pirate | 
| 2 | Monkey | 
| 3 | Ninja | 
| 4 | Spaghetti | 
| B表 | |
| id | name | 
| 1 | Rutabaga | 
| 2 | Pirate | 
| 3 | Darth Vade | 
| 4 | Ninja | 
1.INNER JOIN
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
| 结果集 | |||
| (TableA.) | (TableB.) | ||
| id | name | id | name | 
| 1 | Pirate | 2 | Pirate | 
| 3 | Ninja | 4 | Ninja | 
Inner join 产生的结果集中,是A和B的交集。
| 结果集 | |||
| (TableA.) | (TableB.) | ||
| id | name | id | name | 
| 1 | Pirate | 2 | Pirate | 
| 2 | Monkey | null | null | 
| 3 | Ninja | 4 | Ninja | 
| 4 | Spaghetti | null | null | 
| null | null | 1 | Rutabaga | 
| null | null | 3 | Darth Vade | 
WHERE TableA.id IS null OR TableB.id IS null
| 结果集 | |||
| (TableA.) | (TableB.) | ||
| id | name | id | name | 
| 2 | Monkey | null | null | 
| 4 | Spaghetti | null | null | 
| null | null | 1 | Rutabaga | 
| null | null | 3 | Darth Vade | 
| 结果集 | |||
| (TableA.) | (TableB.) | ||
| id | name | id | name | 
| 1 | Pirate | 2 | Pirate | 
| 2 | Monkey | null | null | 
| 3 | Ninja | 4 | Ninja | 
| 4 | Spaghetti | null | null | 
| 结果集 | |||
| (TableA.) | (TableB.) | ||
| id | name | id | name | 
| 2 | Monkey | null | null | 
| 4 | Spaghetti | null | null | 
产生在A表中有而在B表中没有的集合。
请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。UNION 只选取记录,而UNION ALL会列出所有记录。
| 新结果集 | 
| name | 
| Pirate | 
| Monkey | 
| Ninja | 
| Spaghetti | 
| Rutabaga | 
| Darth Vade | 
| 新结果集 | 
| name | 
| Pirate | 
| Monkey | 
| Ninja | 
| Spaghetti | 
| Rutabaga | 
| Pirate | 
| Darth Vade | 
| Ninja | 
全部列出来
(3)注意:
| 新结果集 | |
| id | name | 
| 1 | Pirate | 
| 2 | Monkey | 
| 3 | Ninja | 
| 4 | Spaghetti | 
| 1 | Rutabaga | 
| 2 | Pirate | 
| 3 | Darth Vade | 
| 4 | Ninja | 
图解SQL的inner join、left join、right join、full outer join、union、union all的区别的更多相关文章
- EntityFramework 使用Linq处理内连接(inner join)、外链接(left/right outer join)、多表查询
		
场景:在实际的项目中使用EntityFramework都会遇到使用Ef处理连接查询的问题,这里做一些小例子如何通过Linq语法处理内连接(inner join).外连接(left/right oute ...
 - oracle 内连接(inner join)、外连接(outer join)、全连接(full join)
		
转自:https://premier9527.iteye.com/blog/1659689 建表语句: create table EMPLOYEE(EID NUMBER,DEPTID NUMBER,E ...
 - 图解SQL的inner join、left join、right join、full outer join、union、union all的区别
		
SQL的Join语法有很多,inner join(等值连接) 只返回两个表中联结字段相等的行,left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,right join(右 ...
 - 图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别
		
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
 - 图解SQL的inner join、left join、right join、full outer join、union、union all的区别【转载】
		
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
 - 图解SQL inner join、left join、right join、full outer join、union、union all的区别
		
转于:http://justcoding.iteye.com/blog/2006487 这是一篇来自Coding Horror的文章. SQL的Join语法有很多:有inner的,有outer的,有l ...
 - SQL OUTER JOIN
		
When we want to select out all the record from two table, no matter it's present at second table or ...
 - SQL夯实基础(一):inner join、outer join和cross join的区别
		
一.数据构建 先建表,再说话 create database Test use Test create table A ( AID ,) primary key, name ), age int ) ...
 - SQL:OUTER JOIN使用方法具体解释
		
SQL--JOIN使用方法 外联接. 外联接能够是左向外联接.右向外联接或完整外部联接. 在 FROM 子句中指定外联接时,能够由下列几组keyword中的一组指定: LEFT JOIN 或 LEF ...
 
随机推荐
- Java中接口式的匿名内部类的构造方法
			
在使用多线程的时候,时常会使用两种方式实现,一种是直接继承Thread类来实现多线程,另外一种就是实现Runnable接口. 我们都知道,接口是没有构造方法的,同时匿名内部类也是没有构造方法的.原因有 ...
 - Web 前端颜色值--字体--使用,整理整理
			
做网页时经常挑选不好颜色吧...多看看颜色值,或者自己配吧.... 颜色值 CSS 颜色使用组合了红绿蓝颜色值 (RGB) 的十六进制 (hex) 表示法进行定义.对光源进行设置的最低值可以是 0(十 ...
 - C#类的一些概念
			
一.概念 1.类的作用是来模拟现实对象的,一个现实对象可以从两个地方进行描述:特征和行为. 2.类不是你凭空想象的,它只是描述现实对象具体的特征和行为的. 3我们写类只需要写我们所需要的. 4.类是提 ...
 - Entity FrameWork  增删查改
			
Add #region 1.0 新增+void Add() /// <summary> /// 新增 /// </summary> static void Add() { // ...
 - 后缀数组(模板题) - 求最长公共子串 - poj 2774 Long Long Message
			
Language: Default Long Long Message Time Limit: 4000MS Memory Limit: 131072K Total Submissions: 21 ...
 - Ubuntu 12.04下解决Tomcat自启动问题
			
当我们安装好Tomcat使用后发现,每次启动都需要在终端中手动键入sudo /var/tomcat/bin/startup.sh,那么我们怎么解决这个问题呢 http://hovertree.com/ ...
 - 动态创建JS
			
var element=document.createElement('script'); element.setAttribute('src', './js/move.js'); document. ...
 - Smtp邮件发送系统公用代码整理—总结
			
1.前言 a.在软件开发中,我们经常能够遇到给用户或者客户推送邮件,推送邮件也分为很多方式,比如:推送一句话,推送一个网页等等.那么在系统开发中我们一般在什么情况下会使用邮件发送呢?下面我简单总结了一 ...
 - [原创]html5_PC游戏_图片俄罗斯方块
			
PC游戏_图片俄罗斯方块 以前的了,快一年了... 使用了离线canvas复制的方法,启动预览效果需要服务器支持 另外,AC娘图片可以自己做加载功能,这样游戏图片显示更顺畅 效果: --- 代码: h ...
 - 百度网盘采集源码 ,直接采集网盘添加cookies功能
			
名称:百度网盘采集源码 程序语言:php 数据库:mysql 程序介绍: 1.直接采集百度网盘url 2.前端基于bootstrap 3.搜索考虑到后期上亿数据,是基于coreseek,搜索时间毫秒级 ...