SQL OUTER JOIN
When we want to select out all the record from two table, no matter it's present at second table or not, we will have to use SQL OUTER JOIN command.
There are 3 type of OUTER JOIN, which is:
LEFT OUTER JOIN
RIGHT OUTER JOIN
FULL OUTER JOIN
SQL OUTER JOIN syntax:
SELECT *
FROM [TABLE 1] OUTER JOIN [TABLE 2]
ON [TABLE 1].[COLUMN NAME 1] = [TABLE 2].[COLUMN NAME 2]
EXAMPLE :
Let's say we got 2 tables containt data like Below:
Table 1: GameScores
| PlayerName | DepartmentId | Scores |
| Jason | 1 | 3000 |
| Irene | 1 | 1500 |
| Jane | 2 | 1000 |
| David | 2 | 2500 |
| Paul | 3 | 2000 |
| James | 4 | 2000 |
Table 2: Departments
| DepartmentId | DepartmentName |
| 1 | IT |
| 2 | Marketing |
| 3 | HR |
| 5 | QA |
LEFT OUTER JOIN will return all records from the first table,
SQL statement and Result for LEFT OUTER JOIN is :
SELECT * FROM GameScores2
LEFT OUTER JOIN Departments
ON GameScores2.DepartmentId = Departments.DepartmentId
Result:
| PlayerName | DepartmentId | Scores | DepartmentId | DepartmentName |
| Jason | 1 | 3000 | 1 | IT |
| Irene | 1 | 3000 | 1 | IT |
| Jane | 2 | 3000 | 2 | Marketing |
| David | 2 | 3000 | 2 | Marketing |
| Paul | 3 | 3000 | 3 | HR |
| James | 4 | 2000 | NULL | NULL |
RIGHT OUTER JOIN will return all records from the second table,
SQL statement and Result for RIGHT OUTER JOIN is :
SELECT * FROM GameScores2
RIGHT OUTER JOIN Departments
ON GameScores2.DepartmentId = Departments.DepartmentId
Result:
| PlayerName | DepartmentId | Scores | DepartmentId | DepartmentName |
| Jason | 1 | 3000 | 1 | IT |
| Irene | 1 | 3000 | 1 | IT |
| Jane | 2 | 3000 | 2 | Marketing |
| David | 2 | 3000 | 2 | Marketing |
| Paul | 3 | 3000 | 3 | HR |
| NULL | NULL | NULL | 5 | QA |
FULL OUTER JOIN will return all records from all tables,
SQL statement and Result for FULL OUTER JOIN is :
SELECT * FROM GameScores2
FULL OUTER JOIN Departments
ON GameScores2.DepartmentId = Departments.DepartmentId
Result:
| PlayerName | DepartmentId | Scores | DepartmentId | DepartmentName |
| Jason | 1 | 3000 | 1 | IT |
| Irene | 1 | 3000 | 1 | IT |
| Jane | 2 | 3000 | 2 | Marketing |
| David | 2 | 3000 | 2 | Marketing |
| Paul | 3 | 3000 | 3 | HR |
| James | 4 | 2000 | NULL | NULL |
| NULL | NULL | NULL | 5 | QA |
SQL OUTER JOIN的更多相关文章
- SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...
- 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表如下所示: 表A ...
- 图解SQL的inner join、left join、right join、full outer join、union、union all的区别
SQL的Join语法有很多,inner join(等值连接) 只返回两个表中联结字段相等的行,left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录,right join(右 ...
- LINQ to SQL系列四 使用inner join,outer join
先看一个最简单的inner join,在读取Student表时inner join Class表取的对应的Class信息: static void Main(string[] args) { usin ...
- 图解SQL的inner join(join)、left join、right join、full outer join、union、union all的区别
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codin ...
- SQL 查询条件放在LEFT OUTER JOIN 的ON语句后与放在WHERE中的区别
这两种条件放置的位置不同很容易让人造成混淆,以致经常查询出莫名其妙的结果出来,特别是副本的条件与主表不匹配时,下面以A,B表为例简单说下我的理解. 首先要明白的是: 跟在ON 后面的条件是对参与左联接 ...
- SQL的JOIN语法解析(inner join, left join, right join, full outer join的区别)
原文链接:http://www.powerxing.com/sql-join/ 总的来说,四种JOIN的使用/区别可以描述为: left join 会从左表(shop)那里返回所有的记录,即使在右表( ...
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。
对于SQL的Join,在学习起来可能是比较乱的.我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚.Codi ...
- 【转载】SQL中inner join、outer join和cross join的区别
对于SQL中inner join.outer join和cross join的区别很多人不知道,我也是别人问起,才查找资料看了下,跟自己之前的认识差不多, 如果你使用join连表,缺陷的情况下是inn ...
随机推荐
- Windows下配置Apache服务器
第一步:下载最新Apache. 下载网址:http://www.apachehaus.com/cgi-bin/download.plx 第二步:把下载文件解压缩到一个工作目录.D:\Apache 第三 ...
- Xml配置文件属性的说明
Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...
- luoguP4320 道路相遇 圆方树
标题已经告诉你怎么做了..... 两点间的圆点个数即为所求 建出圆方树后打个树剖求$lca$就行..... 复杂度$O(n + q \log n)$ #include <cstdio> # ...
- 3524: [Poi2014]Couriers -- 主席树
3524: [Poi2014]Couriers Time Limit: 20 Sec Memory Limit: 256 MB Description 给一个长度为n的序列a.1≤a[i]≤n.m组 ...
- Codeforces Beta Round #5 B. Center Alignment 模拟题
B. Center Alignment 题目连接: http://www.codeforces.com/contest/5/problem/B Description Almost every tex ...
- 【弱省胡策】Round #0 Flower Dance DP
Flower Dance Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://162.105.80.126/contest/%E3%80%90%E ...
- Unity Pivot/Center与Local/Global总结
Untiy左上角有两个按钮 Pivot/Center 和 Local/Global 它们叫做 变换Gizmo工具 Pivot/Center:现实游戏对象的轴心参考点.Center为以所有选中物体所 ...
- PAT甲级1087. All Roads Lead to Rome
PAT甲级1087. All Roads Lead to Rome 题意: 确实有从我们这个城市到罗马的不同的旅游线路.您应该以最低的成本找到您的客户的路线,同时获得最大的幸福. 输入规格: 每个输入 ...
- SSM+Maven(教程一):学习SSM框架的前提条件。
准备工作 环境准备 1.配置jdk:http://jingyan.baidu.com/article/6dad5075d1dc40a123e36ea3.html Intelij中配置JDK:File- ...
- Debounce 和 Throttle 的原理及实现---防止频繁触发某事件
原文:http://blog.csdn.net/redtopic/article/details/69396722 在处理诸如 resize.scroll.mousemove 和 keydown/ke ...