1

请帮助我解决此查询。

  1. 表 t1 具有“t1c1”和“t1c2”列。

  2. 表 t2 具有“t2c2”和“t2c2”列。

我必须将值插入具有 "t3c1","t3c2",t3c3" 列的 t3 表中。

条件是“t3c2”列值应从“t1c2”列填充,“t3c3”列应从“t2c2”列填充,“t3c1”应从游标值填充。

有人可以帮忙吗?这可能吗?

4

3 回答 3

2

这应该有效:

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

如果您只需要匹配 and 中的某些行t1t2您可以添加:

WHERE t1.t1c1 = 'value'
  AND t2.t2c1 = 'value';
于 2012-09-03T10:48:37.220 回答
0

如果我理解你的问题,我现在不明白。可能 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)

更具体一点,你会得到更好的解决方案。

于 2012-09-03T10:59:36.900 回答
0
insert into t3(t3c1,t3c2,t3c3) 
    (select curval,t1.t1c2,t2.t2c2 from t1 left outer join t2 on t1.col=t2.col)
于 2012-09-03T10:49:12.613 回答