从多个选择

时间:2017-11-01 11:38:50

标签: oracle insert

我正在尝试找到一种方法,将多个选择的结果插入到合并表中。下面的一个伪示例......

SELECT T1.VAL1,T1.VAL2,T1.VAL3 FROM TABLE1 T1
SELECT T2.VAL4,T2.VAL5,T2.VAL6 FROM TABLE2 T2

FOR ALL T1 LOOP
    FOR ALL T2 LOOP
        INSERT INTO TABLE3 T3
        (COL1,COL2,COL3,COL4,COL5,COL6)
        VALUES
        (T1.VAL1,T1.VAL2,T1.VAL3,T2.VAL4,T2.VAL5,T2.VAL6)
    END
END

因此,如果T1返回25行而T2返回100,我将在T3中插入总计2,500行。

提前致谢。

ķ

1 个答案:

答案 0 :(得分:1)

您可以使用CROSS JOIN。不需要LOOP

INSERT INTO table3 t3 (
    col1,
    col2,
    col3,
    col4,
    col5,
    col6
)
    SELECT
        t1.val1,
        t1.val2,
        t1.val3,
        t2.val4,
        t2.val5,
        t2.val6
    FROM
        table1 t1
        CROSS JOIN table2 t2;