表A,有一列a ,有表B,有一列b。想要表C,包括列a,b。表A和表B无任何关联(悲剧)。怎么个写法??我现在的做法是用存储过程循环,用变量得到值后一条一条的插到C里,这种做法太慢太扯蛋了。是不是很难呀

解决方案 »

  1.   

      
    create table tbl_temp_A as select rownum as num, t.a as col_A from A t;create table tbl_temp_B as select rownum as num, t.b as col_B from B t;create table tbl_C 
    (
       a   data_type   -- A表的a字段
       b   data_type   -- B表的b字段
    )
    insert into tbl_C 
    (
      a,
      b
    )
       select t1.col_A,
              t2.col_B
         from tbl_temp_A  t1
       full join tbl_temp_B t2
         on t1.num = t2.num;drop table tbl_temp_A;
    drop table tbl_temp_B; 
      

  2.   

    你要的结果是要A表和B表做笛卡尔积?
    将A和B表笛卡尔积插入C表?
    如果是这样的话很简单
    inser into c 
               select * from A,B
      

  3.   

    就是一个cross join即可.
    insert into c(a , b) select a.a , b.b from a cross join b
      

  4.   

    从你的表述上看要两个表无任何关联而要得到表C并且要有两个表的两个列
    那就只有让两个表产生笛卡尔积了。
    但从你跟帖的表述来看,你想得到的表C是A表的第一行与表B的第一行连接
    也就是说按照两个表的行的插入顺序来合并。
    你这两个表的记录数相同吗?不相同的话怎么处理?
    要得到表C是很简单的,关键是你通过一个什么逻辑来构造个表C,这里你要说清楚。