Таблицы Oracle в одном представлении - PullRequest
0 голосов
/ 11 марта 2009

У меня есть две таблицы в базе данных Oracle, которые имеют одинаковые имена и типы столбцов. Например:

Таблица1: идентификатор, имя, комментарий
Таблица2: идентификатор, имя, комментарий

Как показать все данные из обеих таблиц в одном представлении?

Ответы [ 5 ]

2 голосов
/ 11 марта 2009

Если вы хотите 4 отдельных столбца, просто используйте псевдонимы, как любой другой выбор.

create or replace view vw_my_view as
  select t1.id t1_id
        ,t1.comment t1_comment
        ,t2.id t2_id
        ,t2.comment t2_comment
  from table1 t1
    inner join table2 t2 on join condition
  where filter conditions

РЕДАКТИРОВАТЬ Конечно, ваши таблицы будут каким-то образом связаны друг с другом, иначе ни одна строка вашего представления не будет иметь значения. Поэтому у вас будет условие соединения для объединения двух таблиц, например t1.id = t2.id

Если вы хотите, чтобы они были в двух столбцах, используйте Union

create or replace view vw_my_view as
  select id
        ,comment
  from table1
  union all                -- use ALL unless you want to lose rows
  select id
        ,comment
  from table2;
0 голосов
/ 11 марта 2009
select * from table1
union
select * from table2;
0 голосов
/ 11 марта 2009

Я согласен с тем, что говорит Даффимо, но если для этого есть веские основания, тогда UNION сделает это за вас. например,

SELECT id, name, comment FROM Table1
UNION
SELECT id, name, comment FROM Table2
0 голосов
/ 11 марта 2009

ВЫБРАТЬ * ИЗ ТАБЛИЦЫ1 СОЮЗ ВЫБРАТЬ * ИЗ СТОЛЫ2

(или UNION ALL, если вы хотите дубликаты)

0 голосов
/ 11 марта 2009

Почему две одинаковые таблицы? Что случилось с "Не повторяй себя"? Извините, для меня это звучит как неприятный запах.

Какая бы разница ни вдохновляла вас на создание двух таблиц, держу пари, что это действительно может быть еще одним атрибутом для различения двух групп в одной таблице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...