Объединение и объединение двух таблиц с разными номерами столбцов и то же имя столбца

Я попытался объединить таблицы, которые представляют собой fus_shift и корневую таблицу, в новую таблицу, которая является окончательной таблицей, но выводит что-то вроде "ОШИБКА в строке 2: ORA-01789: в блоке запроса неверное количество столбцов результата". Я попытался также присоединиться к таблице в качестве альтернативы, но она также выдает "ОШИБКА в строке 3: ORA-00918: столбец определен неоднозначно". Есть ли другой способ объединить и объединить две таблицы с разным количеством столбцов и с одинаковым именем столбца соответственно? Еще раз спасибо:-)

ошибка кода:
создать финальную таблицу как
выберите * из fus_shift
союз
выберите * из корня;

ошибка кода:
выберите значение record_num,test_num,t_date,t_time,system_type, категорию, комментарии,val
из fus_shiftrpt,root
где 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

выделенный текст

2 ответа

Вы, конечно, не можете применить "Союз" к вашим столам. Его можно применять только в том случае, если оба запроса возвращают одинаковое количество (и одинакового типа) столбцов.

Вы можете объединить две таблицы, но при объединении необходимо будет использовать "псевдоним таблицы", поскольку поле "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;

Я бы использовал следующий метод:

SELECT * 
FROM fus_shift
INNER JOIN root ON root.record_num = fus_shift.record_num
Другие вопросы по тегам