请帮助我解决此查询。
表 t1 具有“t1c1”和“t1c2”列。
表 t2 具有“t2c2”和“t2c2”列。
我必须将值插入具有 "t3c1","t3c2",t3c3" 列的 t3 表中。
条件是“t3c2”列值应从“t1c2”列填充,“t3c3”列应从“t2c2”列填充,“t3c1”应从游标值填充。
有人可以帮忙吗?这可能吗?
这应该有效:
INSERT INTO t3 (t3c1, t3c2, t3c3)
SELECT currval, t1.t1c2, t2.t2c2
FROM t1, t2;
如果您只需要匹配 and 中的某些行t1
,t2
您可以添加:
WHERE t1.t1c1 = 'value'
AND t2.t2c1 = 'value';
如果我理解你的问题,我现在不明白。可能 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)
更具体一点,你会得到更好的解决方案。
insert into t3(t3c1,t3c2,t3c3)
(select curval,t1.t1c2,t2.t2c2 from t1 left outer join t2 on t1.col=t2.col)