网站首页 > 技术文章 正文
一、简介:
多表连接查询通过表之间的关联字段,一次查询多表数据。
下面将依次介绍 多表连接中的如下方法:
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 可以省略.
实例和结果略。
- 上一篇: 新手之C#读取Oracle数据库中的表并显示
- 下一篇: 运维必备:Oracle权限管理语句总结
猜你喜欢
- 2024-10-17 查看oracle用户权限 查看oracle用户有哪些权限
- 2024-10-17 修改oracle数据提示被用户锁住?别人正在用这个表?
- 2024-10-17 Oracle查询表英文名、表中文名、表业务描述、表记录数、字段数量
- 2024-10-17 Oracle如何创建只读用户 oracle只读表可以执行哪些命令
- 2024-10-17 数据库oracle常用字典表 oracle 字典表(dictionary)
- 2024-10-17 详解MySQL用户和权限管理--5大用户权限表、访问控制及权限管理
- 2024-10-17 Oracle表空间了解一下 oracle数据库表空间是什么
- 2024-10-17 Oracle数据库的表有多大呢? oracle数据库一张表能存多少数据
- 2024-10-17 运维必备:Oracle权限管理语句总结
- 2024-10-17 新手之C#读取Oracle数据库中的表并显示
你 发表评论:
欢迎- 504℃几个Oracle空值处理函数 oracle处理null值的函数
- 501℃Oracle分析函数之Lag和Lead()使用
- 496℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 491℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 484℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 474℃【数据统计分析】详解Oracle分组函数之CUBE
- 457℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 455℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)