结合并连接两个不同的表。列和相同的列名称

时间:2021-10-22 20:21:35

I tried to combined tables which is fus_shift and root table into a new table which is final table but it outputs like "ERROR at line 2: ORA-01789: query block has incorrect number of result columns". I tried also joining table as my alternative but it also outputs "ERROR at line 3: ORA-00918: column ambiguously defined". Is there another way to do combining and joining two table with different number of columns and having the same column name respectively? Thanks again:-)

code error:
create table final as
select * from fus_shift
union
select * from root;

我尝试将fus_shift和根表的表组合成一个新表,这是一个新表,但它的输出类似于“第2行的ERROR:ORA-01789:查询块的结果列数不正确”。我尝试将表连接作为我的替代方案,但它也输出“第3行的错误:ORA-00918:列模糊定义”。是否有另一种方法可以组合和连接两个具有不同列数并具有相同列名的表?再次感谢:-) code error:create table final as select * from fus_shift union select * from root;

code error:
select record_num,test_num,t_date,t_time,system_type,category,comments,val
from fus_shiftrpt,root
where record_num=record_num;

代码错误:从fus_shiftrpt中选择record_num,test_num,t_date,t_time,system_type,category,comments,val,其中record_num = record_num;

my tables:

                                 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

emphasized text

2 个解决方案

#1


3  

You certainly cannot apply "Union" to your tables. It can be applied only if both queries return same number (and of similar type) of columns.

你当然不能在你的牌桌上申请“联盟”。仅当两个查询返回相同数量(和类似类型)的列时,才能应用它。

You can join the two tables but would have to use "table alias" while joining since "record_num" field is common in both the tables. Here is the query that would work for you

您可以加入这两个表,但在加入时必须使用“表别名”,因为“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;

#2


1  

I would use the following method:

我会使用以下方法:

SELECT * 
FROM fus_shift
INNER JOIN root ON root.record_num = fus_shift.record_num

#1


3  

You certainly cannot apply "Union" to your tables. It can be applied only if both queries return same number (and of similar type) of columns.

你当然不能在你的牌桌上申请“联盟”。仅当两个查询返回相同数量(和类似类型)的列时,才能应用它。

You can join the two tables but would have to use "table alias" while joining since "record_num" field is common in both the tables. Here is the query that would work for you

您可以加入这两个表,但在加入时必须使用“表别名”,因为“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;

#2


1  

I would use the following method:

我会使用以下方法:

SELECT * 
FROM fus_shift
INNER JOIN root ON root.record_num = fus_shift.record_num