2012-09-03 50 views
0

請幫我解決這個問題。從2個或不同表的列名插入值到表中?

  1. 表t1具有「t1c1」和「t1c2」列。

  2. 表t2具有「t2c2」和「t2c2」列。

我必須將值插入T3表具有「t3c1」,「t3c2」,t3c3" 列。

的條件是‘t3c2 T1C2‘列和’列中的值應被填充’ 「t3c3」一欄應該從「t2c2」欄和「t3c1」填充應從光標值填充

能在這個別人的幫助這是可能的

+0

「t2c2」and「t2c2」? –

回答

1

這應該工作:??

INSERT INTO t3 (t3c1, t3c2, t3c3) 
SELECT currval, t1.t1c2, t2.t2c2 
FROM t1, t2; 

如果您需要在t1t2匹配某些行,你可以添加:

WHERE t1.t1c1 = 'value' 
    AND t2.t2c1 = 'value'; 
+0

感謝本傑明的快速回答!我會在執行 – kattashri

+0

後回來嗨benjamin ......除了t3c1列應該是遊標值之外,所有的都是正確的......我如何使用遊標值插入到該列中 – kattashri

+0

@kattashri對不起,我不能勝任與甲骨文,我不能幫助你更多! – Benjamin

0
insert into t3(t3c1,t3c2,t3c3) 
    (select curval,t1.t1c2,t2.t2c2 from t1 left outer join t2 on t1.col=t2.col) 
0

我不知道現在如果我明白你的問題。 可能是SQL中的一些代碼會比其他的描述更好。如果我已瞭解你有這樣的觀點

CREATE VIEW t3 as SELECT t1c2 AS t3c2, t2c2 AS t3c3, rowid (oid ... or something) AS t3c1 FROM t1,t2 WHERE .... 

然後你就可以做一個TRIGER INSTEAD OF

CREATE TRIGGER t3_insert INSTEAD OF INSERT ON t3 AS BEGIN 
    INSERT t1 .... VALUES (NEW.t3c1 .....) 
    ....... 
END; 

,或者如果T3是常規表,並要修改在T3您的數據,然後使用觸發器AFTER INSERT (UPDATE,DELETE)

更具體一些,您可以獲得更好的解決方案。

+0

雅t3是一個常規表,我不是試圖修改t3表,但我試圖填充t3表,其中的列是來自另一個表的值,其中一列是一個遊標值 – kattashri

相關問題