2012-11-01 40 views
1

這是我的任務的一部分,我被困在第一部分..在保留原始ID和原始表的同時從多個表創建表?

他們要求我們創建一個數據倉庫表來整合來自其他表的數據。

需求表給了我必須使用以下模式。

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

所以我寫了這個DDL其它表

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

這將創建表,但我不能從任何其他表得到任何有關ORIGIDORIGITABLE列創建A3DWSW表中的列。他們沒有列,所以我假設名字的意思是某個表的ORIGINAL。但我無法猜測哪張表和ID是原創的。

回答

1

我想你在這裏錯過了一些東西。最好的猜測是這兩個表格中都有 DWSWID, TITLE, CATCODE, CATNAME這兩列,並且您實質上是在兩個表格中的每一行都創建了一行。

這意味着如果每個表有5行數據,您最終將得到一個包含10行的表。然後ORIGID將映射到正在複製的行的ID,並且ORIGITABLE將是該行來自的表的名稱。

+0

哦,我的上帝,這是真的! –

+0

我的意思是A3SOFTWARE表有['code'](SWID),TITLE,CATCODE(外鍵)和A3CATEGORY表啊,CATCODE和CATNAME。所以你的意思是ORIGIID會保留這兩個表的主鍵,並且ORIGNAME會保留兩個表的名字? –

+1

是的。就像我說的那樣,根據你給出的結果,這是一個最好的猜測。只是你知道,你模仿他們稱之爲視圖。您可能需要[read up](http://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_8004.htm),因爲這可能是他們正在教你的。 –

相關問題