zoukankan      html  css  js  c++  java
  • 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 可以省略.

    实例和结果略。

  • 相关阅读:
    一行代码轻松修改 Text Field 和 Text View 的光标颜色 — By 昉
    六种手势识别,你用了哪些?——董鑫
    Mac 屏幕录制Gif 制作 By-胡罗
    利用ICMP协议的PING命令获取客户端当前网络质量 by徐文棋
    iOS加载Gif图片的N种方式 By-H罗
    [手游项目3]-10-Go语言atomic原子操作
    [手游项目3]-9-Go语言sync.Map(在并发环境中使用的map)
    LRU原理和Redis实现
    Cleanup failed to process the following paths错误的解决
    [手游项目3]-8-排行榜redis实现
  • 原文地址:https://www.cnblogs.com/xiaozhang666/p/11263495.html
Copyright © 2011-2022 走看看