网站首页 > 数据库 / 正文
一、简介:
多表连接查询通过表之间的关联字段,一次查询多表数据。
下面将依次介绍 多表连接中的如下方法:
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 可以省略.
实例和结果略。
Tags:oracle查询库
- 上一篇:oracle查询语句执行计划分析
- 下一篇:Oracle性能调优——查看执行计划
猜你喜欢
- 2024-11-26 Oracle数据库之高级查询一
- 2024-11-26 oracle查询用户的权限
- 2024-11-26 oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况
- 2024-11-26 Oracle查询扩展
- 2024-11-26 连载四:Oracle升级文章大全(完结篇)
- 2024-11-26 Python 操作Oracle数据库常用的方法和工具
- 2024-11-26 分享两个Oracle的shell脚本---一键获得数据库实例状态、参数及包
- 2024-11-26 ORACLE 分页查询整理笔记
- 2024-11-26 详解Oracle 11g如何快速定位到lobsegment、lobindex对应的表
- 2024-11-26 日常运维笔记--给oracle用户授权,使之能查询系统视图