多表关联

本文详细介绍了SQL中的多表关联查询,包括内关联、外关联(左外、右外和全外)以及不等值关联和自关联。内关联用于获取两个表的交集部分,外关联则保留所有主表数据,而自关联则是将一张表当作多张表使用,如员工编号等于领导编号的情况。ON关键字用于指定关联字段,WHERE则用于设置过滤条件。
摘要由CSDN通过智能技术生成

关联查询 / 多表查询 / 多表关联查询

什么时候需要用关联查询

  1. 当查询的结果来自多张表的时候
  2. 查询结果的过滤条件来自其他表的时候,也可以选择多表关联

内关联

2个表取相同的部分,把他们显示出来

--ORACLE 内关联写法
SELECT E.*,D.*
FROM EMP E , DEPT D
WHERE E.DEPTNO = D.DEPTNO;

--SQL 内关联写法
SELECT E.*,D.*
FROM EMP E INNER JOIN DEPT D    --INNER 可写可不写
ON E.DEPTNO = D.DEPTNO;
--查询 NEW YORK 地区工作的所有员工的信息
--Oracle写法
SELECT E.*,D.*
FROM EMP E , DEPT D
WHERE E.DEPTNO = D.DEPTNO
      AND D.LOC = 'NEW YORK';
--SQL写法
SELECT E.*,D.*
FROM EMP E INNER JOIN DEPT D    
ON E.DEPTNO = D.DEPTNO
WHERE D.LOC = 'NEW YORK';

总结
在SQL查询中 ON 和 WHERE 的区别:
ON后面跟的是关联字段
WHERE后面跟的是过滤条件

外关联

  1. 左外关联/右外关联
    本质上是一样的,以其中一张表作为主表,用从表的数据跟主表进行匹配
    匹配上的数据正常显示
    匹配不上的数据则自动补空(NULL)
  2. 全外关联
    查询出来的结果集相比 内关联和左外/右外关联的结果 是最大的
    把2个表的结果集互相比较
    匹配到的数据正常显示
    匹配不到数据互相补空(NULL)
    最终的结果是 多个表的数据都会全部显示
--Oracle 外关联写法
SELECT 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值