0

我试图将fus_shift 表和根表组合成一个新表,该表是最终表,但它输出类似于“第 2 行的错误:ORA-01789:查询块的结果列数不正确”。我也尝试加入表作为我的替代方案,但它也输出“第 3 行的错误:ORA-00918:列不明确定义”。有没有另一种方法来组合和连接两个具有不同列数并分别具有相同列名的表?再次感谢:-)

代码错误:
create table final as
select * from fus_shift
union
select * from root;

代码错误:
select record_num,test_num,t_date,t_time,system_type,category,comments,val
from fus_shiftrpt,root
where record_num=record_num;

我的桌子:

                                 fus_shift Table


           Record_Num       test          date      time         system   
           -----------------------------------------------------------
                1          test15      08-11-12  13:20:01    sys23 
                2          test17      08-11-03  14:24:00    sys24
                3          test13      08-11-13  17:25:04    sys45
                4          test15      08-11-14  18:24:00    sys67
                5          test16      08-11-15  19:24:06    sys45


                                 root Table

           Record_Num      category   comments    validated by
           ---------------------------------------------------
                  1        dirt        checked        admin
                  2        prog        checked        admin
                  3        dirt        checked        pe
                  4        wires       checked        ee
                  5        prog        repair         admin

强调文本

4

2 回答 2

3

您当然不能将“联合”应用于您的表格。只有当两个查询都返回相同数量(并且类型相似)的列时,才能应用它。

您可以加入这两个表,但在加入时必须使用“表别名”,因为“record_num”字段在两个表中都很常见。这是适合您的查询

select 
        table1.record_num,
        table1.test_num,
        table1.t_date,
        table1.t_time,
        table1.system_type,
        table2.category,
        table2.comments,
        table2.val
from 
       fus_shift table1,root table2
where 
       table1.record_num = table2.record_num;
于 2008-12-06T09:49:16.973 回答
1

我会使用以下方法:

SELECT * 
FROM fus_shift
INNER JOIN root ON root.record_num = fus_shift.record_num
于 2008-12-07T13:04:11.527 回答