码迷,mamicode.com
首页 > 数据库 > 详细

Oracle中的多表查询

时间:2016-09-16 11:18:12      阅读:180      评论:0      收藏:0      [点我收藏+]

标签:

多表查询

笛卡尔积: N*M

 

使用关联字段消除笛卡尔积的多余数据:

SELECT EMP.*,DEPT.DNAME,DEPT.LOC FROM EMP, DEPT

WHERE EMP.DEPTNO=DEPT.DEPTNO;

 

多表查询一定要有关联字段

SELECT

E.ENAME,E.JOB,E.HIREDATE,D.DEPTNO,D.LOC

FROM EMP  E ,DEPT D

WHERE E.DEPTNO = D.DEPTNO;

 

UNION-集合操作

UNION将两个或两个以上的查询结果合并到一个结果中,查询结果中会剔除所有重复记录。

SELECT * FROM EMP

UNION

SELECT * FROM EMP WHERE DEPTNO=10 ;

 

UNION ALL将两个或多个查询结果放到一个结果中,保留所有记录(相对于UNION)。

SELECT * FROM EMP

UNION ALL

SELECT * FROM EMP WHERE DEPTNO=10 ;

 

INTERSECT 求出多个结果的共有数据(交集)

SELECT * FROM EMP

INTERSECT

SELECT * FROM EMP WHERE DEPTNO=10 ;

 

MINUS 用第一个结果减去第二个结果(差集)

SELECT * FROM EMP

MINUS

SELECT * FROM EMP WHERE DEPTNO = 10;

 

Oracle中的多表查询

标签:

原文地址:http://www.cnblogs.com/kuillldan/p/5876040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!