このクエリを解決するのを手伝ってください。
「t1c1」列と「t1c2」列を持つテーブルt1。
「t2c2」列と「t2c2」列を持つテーブルt2。
「t3c1」、「t3c2」、「t3c3」列を持つt3テーブルに値を挿入する必要があります。
条件は、「t3c2」列の値は「t1c2」列から入力され、「t3c3」列は「t2c2」列から入力され、「t3c1」はカーソル値から入力される必要があります。
誰かがこれを手伝ってくれる?これは可能ですか?
これは機能するはずです:
INSERT INTO t3 (t3c1, t3c2, t3c3)
SELECT currval, t1.t1c2, t2.t2c2
FROM t1, t2;
t1
との特定の行のみを一致させる必要がある場合はt2
、次を追加できます。
WHERE t1.t1c1 = 'value'
AND t2.t2c1 = 'value';
insert into t3(t3c1,t3c2,t3c3)
(select curval,t1.t1c2,t2.t2c2 from t1 left outer join t2 on t1.col=t2.col)
私はあなたの質問を理解するかどうか今はわかりません。SQLの一部のコードは、他の説明よりも優れている可能性があります。私が理解できない場合は、このビューがあります
CREATE VIEW t3 as SELECT t1c2 AS t3c2, t2c2 AS t3c3, rowid (oid ... or something) AS t3c1 FROM t1,t2 WHERE ....
次に、トリガーを作成できます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)
より具体的には、より良い解決策を受け取ることができます。