SQL的inner join、left join、right join、full outer join、union、union all
主题: SQL的inner join、left join、right join、full outer join、union、union all的学习。
Table A和Table B表如下所示:
| id | name |
| 1000 | 猫 |
| 1001 | 狗 |
| 1002 | 苹果 |
| 1003 | 香蕉 |
| id | name |
| 1004 | 猫 |
| 1005 | 狗 |
| 1006 | 栗子 |
| 1007 | 西瓜 |
1. inner join(产生TableA和TableB的交集)
SELECT * FROM TableA INNER JOIN TableB ON TableA.name = TableB.name
| id | name | id | name |
| 1000 | 猫 | 1004 | 猫 |
| 1001 | 狗 | 1005 | 狗 |
2. full [outter] join(产生TableA和TableB的并集)
SELECT * FROM TableA FULL OUTER JOIN TableB ON TableA.name = TableB.name
| id | name | id | name |
| 1000 | 猫 | 1004 | 猫 |
| 1001 | 狗 | 1005 | 狗 |
| 1002 | 苹果 | null | null |
| 1003 | 香蕉 | null | null |
| null | null | 1006 | 栗子 |
| null | null | 1007 | 西瓜 |
对于没有匹配的记录,则会以null做为值。
3. left [outter] join(产生表A的完全集,而B表中匹配的则有值,没有匹配的则以null值取代)
SELECT * FROM TableA LEFT OUTER JOIN TableB ON TableA.name = TableB.name
| id | name | id | name |
| 1000 | 猫 | 1004 | 猫 |
| 1001 | 狗 | 1005 | 狗 |
| 1002 | 苹果 | null | null |
| 1003 | 香蕉 | null | null |
right [outer] join, 是以后面的表为基础,与left [outter] join 类似。
4. union 、 union all(UNION 操作符用于合并两个或多个 SELECT 语句的结果集)
SELECT name FROM TableA UNION SELECT name FROM TableB
| name |
| 猫 |
| 狗 |
| 苹果 |
| 香蕉 |
| 栗子 |
| 西瓜 |
SELECT name FROM TableA UNION ALL SELECT name FROM TableB
| name |
| 猫 |
| 狗 |
| 苹果 |
| 香蕉 |
| 猫 |
| 狗 |
| 栗子 |
| 西瓜 |
SELECT * FROM TableA UNION SELECT * FROM TableB
| id | name |
| 1000 | 猫 |
| 1001 | 狗 |
| 1002 | 苹果 |
| 1003 | 香蕉 |
| 1004 | 猫 |
| 1005 | 狗 |
| 1006 | 栗子 |
| 1007 | 西瓜 |
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 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、left join、right join、full outer join、union、union all的区别
转于:http://justcoding.iteye.com/blog/2006487 这是一篇来自Coding Horror的文章. SQL的Join语法有很多:有inner的,有outer的,有l ...
- 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 ...
- 图解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 是右边的表.其各有 ...
随机推荐
- xml基本操作和保存配置文件应用实例
引言:在实际项目中遇到一些关于xml操作的问题,被逼到无路可退的时候终于决定好好研究xml一番.本文首先介绍了xml的基本操作,后面写了一个经常用到的xml保存配置文件的实例. xml常用方法: 定义 ...
- ural 2067. Friends and Berries
2067. Friends and Berries Time limit: 2.0 secondMemory limit: 64 MB There is a group of n children. ...
- 【原】iOS学习之XML与JSON两种数据结构比较和各自底层实现
1.XML与JSON两种数据结构的优缺点 1> XML 优点: 格式统一, 符合标准 容易与其他系统进行远程交互, 数据共享比较方便 缺点: XML文件格式文件庞大, 格式复杂, 传输占 ...
- 纯JavaScripst的全选、全不选、反选 【转】
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- ACM 谁获得了最高奖学金
谁获得了最高奖学金 时间限制:1000 ms | 内存限制:65535 KB 难度:2 描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: ...
- Codeforces Round #233 (Div. 2) B. Red and Blue Balls
#include <iostream> #include <string> using namespace std; int main(){ int n; cin >&g ...
- Centos 下面升级系统内核(转)
1.导入public key 1 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org 2.安装ELRepo到CentOS 6. ...
- ZeroMQ实例-使用ZeroMQ进行windows与linux之间的通信
1.本文包括 1)在windows下使用ZMQ 2)在windows环境下与Linux环境下进行网络通信 2.在Linux下使用ZMQ 之前写过一篇如何在Linux环境下使用ZMQ的文章 <Ze ...
- 前端自动化工具 -- grunt 使用简介
grunt作为一个前端构建工具,有资源压缩,代码检查,文件合并等功能. 下面就简单了解grunt的使用. 一.环境配置 grunt是基于nodejs的,所以需要一个 nodejs 环境,未了解的可以 ...
- 【Go语言】面向对象扩展——接口
简单地说 Interface是一组Method的组合,可以通过Interface来定义对象的一组行为.如果某个对象实现了某个接口的所有方法,就表示它实现了该借口,无需显式地在该类型上添加接口说明. I ...