我正在尝试构建一个查询来获取表1中的所有行,然后检查表2中是否存在相应的行,如果是,则拉一些数据,JOIN并插入表3.这将更有意义在伪代码中 - 所以这就是我正在尝试做的,在程序上,我只是不确定如何在PL / SQL中实现它。
For all rows in T1:
For all rows in T2:
if (T1.mycolumn - T2.othercolumn) > 0:
INSERT INTO T3 (foo, bar) VALUES T1.foo, T2.bar
谢谢!
答案 0 :(得分:2)
听起来你正在描述像
这样的东西INSERT INTO t3( foo, bar )
SELECT t1.foo,
t2.bar
FROM t1
LEFT OUTER JOIN t2 ON (t1.mycolumn > t2.othercolumn)
但是,我不确定这实际上是你想要的。一些样本数据和预期输出会有所帮助。在您所描述的内容中,t1.foo
值可能会多次插入t3
,因为它们匹配t2
中的许多不同行。通常情况下,t1
和t2
会有一些常用的密钥,用于确定是否存在适当的t2
行,而t1.mycolumn > t2.otherColumn
条件是否恰好是另一个谓词
INSERT INTO t3( foo, bar )
SELECT t1.foo,
t2.bar
FROM t1
LEFT OUTER JOIN t2 ON ( t1.someKey = t2.someKey
AND t1.mycolumn > t2.othercolumn)
答案 1 :(得分:0)
insert into T3 (foo, bar)
select T1.foo, T2.bar
from T1, T2
where T1.mycolumn - T2.othercolumn > 0