在保留原始ID和原始表的同时从多个表创建一个表?

时间:2012-11-01 20:18:40

标签: sql oracle

这是我的任务的一部分,我陷入了第一部分..

他们要求我们创建一个数据仓库表来集成来自其他表的数据。

需求表给了我以下必须使用的模式。

A3DWSW (DWSWID, TITLE, CATCODE, CATNAME, ORIGID, ORIGITABLE)
the DWSWID, TITLE, CATCODE, CATNAME columns are from A3SOFTWARE and A3CATEGORY TABLE

所以我编写了这个DDL,用其他表中的列创建A3DWSW

CREATE TABLE A3DWSW AS (SELECT A3SOFTWARE.SWID, A3SOFTWARE.TITLE, A3SOFTWARE.CATCODE, A3CATEGORY.CATNAME FROM A3SOFTWARE, A3CATEGORY);

这会创建表,但我无法从任何其他表中获取有关ORIGIDORIGITABLE列的任何信息。它们没有列,所以我假设某些表的名称是ORIGINAL。但我无法猜出哪个表和ID是原始的。

1 个答案:

答案 0 :(得分:1)

我觉得你在这里遗漏了一些东西。最好的猜测是两个表都有列 DWSWID, TITLE, CATCODE, CATNAME在其中,您实际上是为两个表中的每一行创建一行。

这意味着如果每个表有5行数据,最终会得到一个包含10行的表。然后ORIGID将映射到要复制的行的ID,ORIGITABLE将是该行所来自的表的名称。