oracle 多表连接查询 join(一)
一、简介:
多表连接查询通过表之间的关联字段,一次查询多表数据。
下面将依次介绍 多表连接中的如下方法:
1、from a,b
2、inner join
3、left outer join
4、right outer join
二、例子:
以下采用oracle的scott用户中的两张表dept和emp举例,
两个表的deptno字段关联。
表结构如下:
(1)、dept(部门表)

(2)、emp(雇员表)

1、from 表1,表2
语法:select a.x,b.y from a,b where a.id=b.id;
实例:
返回所有满足where条件的行
select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门
from scott.emp a, scott.dept b
where a.deptno = b.deptno;
结果:

2、inner join
语法:select a.x from a inner join b on a.id=b.id;
inner 可以省略.
实例:
select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门
from scott.emp a join scott.dept b
on a.deptno = b.deptno ;
结果同上。
3、left outer join
查询结果除了返回包含连接条件的行,还包含左表(a)中不满足连接条件的行,
其中不满足连接条件的行中b表的字段值将被置为空。
语法:select a.x from a inner left outer join b on a.id=b.id;
outer 可以省略.
实例:
select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门
from scott.emp a left outer join scott.dept b
on a.deptno = b.deptno
结果:

当查询中出现过滤条件时:
1)当连接条件后面有where条件时:
select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门
from scott.emp a left outer join scott.dept b
on a.deptno = b.deptno where b.dname like 'SALES'
解释:先根据连接条件a.deptno = b.deptno查询,再对查询结果按过滤条件查询。
结果:

2)当连接条件后面有and条件时:
select a.empno as 员工编号, a.ename as 员工名称, b.dname as 部门
from scott.emp a left outer join scott.dept b
on (a.deptno = b.deptno and b.dname like 'SALES')
解释:先对b表按过滤条件查询,再对结果执行左连接查询。
结果:

4 、right outer join
查询结果除了返回包含连接条件的行,还包含右表(b)中不满足连接条件的行,
其中不满足连接条件的行中a表的字段值将被置为空。
语法:select a.x from a inner right outer join b on a.id=b.id;
outer 可以省略.
实例和结果略。
oracle 多表连接查询 join(一)的更多相关文章
- oracle 多表连接查询 join
转 简介: 多表连接查询通过表之间的关联字段,一次查询多表数据. 下面将依次介绍 多表连接中的如下方法: 1.from a,b 2.inner join 3.left outer join 4.rig ...
- oracle 多表连接查询
一.内连接(inner join (可简写为join)) 内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的列值. 1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的 ...
- Oracle多表连接查询
连接:将一张表中的行按照某种条件和另一张表中的行连接起来形成一个新行的的过程. 根据连接查询返回的结果,分为3类: 内连接(inner join) 外连接(outer join) 交叉连接(cross ...
- Linq 多表连接查询join
在查询语言中,通常需要使用联接操作.在 LINQ 中,可以通过 join 子句实现联接操作.join 子句可以将来自不同源序列,并且在对象模型中没有直接关系(数据库表之间没有关系)的元素相关联,唯一的 ...
- oracle多表连接查询竟然还有这种操作
仔细观察上面几个图,比较下 oracle数据库中的+操作符竟然可以替换left join 和right join sql server暂时没用到过
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所 ...
- oracle(sql)基础篇系列(二)——多表连接查询、子查询、视图
多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所在的部门 ...
- SQL表连接查询(inner join、full join、left join、right join)
SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...
- Hive的join表连接查询的一些注意事项
Hive支持的表连接查询的语法: join_table: table_reference JOIN table_factor [join_condition] | table_reference {L ...
随机推荐
- 组装恢复rbd
标签: ceph,ceph实验,rbd cluster相关环境: # cat /etc/redhat-release CentOS Linux release 7.3.1611 (Core) # ce ...
- java中如何将OutputStream转换为InputStream
在不需要文件生成的情况下,直接将输出流转换成输入流.可使用下面的三种方法: 如果你曾经使用java IO编程,你会很快碰到这种情况,某个类在OutputStream上创建数据而你需要将它发送给某个需要 ...
- Debian7 apt源设置
刚装完系统时是没有 apt-spy 的,这时候我们可以暂时先找个可用的源代替,如(写在 /etc/apt/sources.list 中): deb http://http.us.debian.org/ ...
- HDLM命令dlnkmgr详解之四_monitor/offline/online
1. monitor 以一定的时间间隔监控hba或cha口的IO信息. 命令格式 监控hba口的IO信息: dlnkmgr monitor -hbaid HBA_ID [-intvl Interval ...
- springmvc 在页面跳转之后 引入文件的路径前面加上了 controller 的映射名
转自:https://zhidao.baidu.com/question/2140453086362943788.html 应该是没有前面的/user的 前端用的是jsp吗,如果是在路径前加${pag ...
- C++ 学习之---C++基础理论知识(也适合面试回顾)
C++ 语言编写的基础练习 具体案例放在github中 github地址:https://github.com/Master-fd/C-Base 1. 操作符重载 2. 构造与析构 3. 函数模板 4 ...
- opencv中文网站相关下载
http://wiki.opencv.org.cn/index.php/Download
- LinearLayout线性布局搭配权重属性的使用
在开发中,我们是通过布局来完成应用界面的搭配的,通过各种布局,我们可以完成各种复杂的界面设计.而LinearLayout也就是我们说的线性布局,这个比较简单而且使用很广泛的一种布局.下面我们通过一个D ...
- Quartz_1_简单编程式任务调度使用(SimpleTrigger)
最近在工作中,要做定时任务的更能,最开始的时候,想到的是 JavaSE 中,自带 Timer 及 TimerTask 联合使用,完成定时任务.最后发现,随着业务的复杂,JDK 中的 Timer 和 T ...
- cocos2dx中坐标系
CCNode类的setPosition,getPosition函数如果是一个Node的Child则获取的坐标就是该Node的本地坐标 另一个关键问题就是在cocos2d-x里就是各种对象的大小问题.因 ...