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

Oracle临时表

时间:2015-10-24 12:53:09      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

某些情况下, 需要 多个非常大的表关联的情况下,  但是需要检索的, 是少量的数据的时候.
可以先把 大表的数据, 检索出那一小部分, 然后插入到 临时表中, 最后再关联处理.
例如:
某百货公司的数据库.
里面有下面这2张 没有分区的表
销售表: 销售日期, 销售流水号, 销售金额
销售明细表: 销售流水号, 销售物品, 销售数量

当上面的表里面,包含几年的数据以后。
假如你要查询 昨天的销售合计。 很简单
SELECT * FROM 销售表 WHERE 销售日期 = 昨天。

但是当你要查询 昨天的销售的, 某种商品的 销售情况的时候。 就要
SELECT
......
FROM
销售表 JOIN 销售明细表
ON (销售表.销售流水号 = 销售明细表.销售流水号)
WHERE
销售表.销售日期 = 昨天
AND 销售明细表.销售物品 =某物品

这种情况下,由于2个大表关联,查询时间非常的长。

可以通过临时表。

INSERT INTO 临时表1
SELECT * FROM 销售表 WHERE 销售日期 = 昨天

然后再
INSERT INTO 临时表2
SELECT * FROM 销售明细表 WHERE 销售流水号 IN (SELECT 销售流水号 FROM 临时表1)

最后
SELECT
......
FROM
临时表1 JOIN 临时表2
ON (临时表1.销售流水号 = 临时表2.销售流水号)

这样就是 2个小表关联处理,查询起来,速度快一些。

Oracle临时表

标签:

原文地址:http://www.cnblogs.com/cxxjohnson/p/4906476.html

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