Создать представление из 2 таблиц с одним приоритетом таблицы с другой таблицей (в основном обе таблицы похожи, за исключением одного столбца) - PullRequest
1 голос
/ 19 марта 2019

Создание представления из 2 таблиц с одним приоритетом таблицы с другой таблицей (в основном обе таблицы похожи, за исключением одного столбца).

Нужен вид из 2 таблиц.

Table1 table contains below columns with values:
ValueOne = C11
ValueTwo= C12
ValueThree= C13

Table2 table contains below columns (extra id column compare to table1).   
Id = 123   
ValueOne = C11  
ValueTwo= V12  
ValueThree= C13

Таблица2 имеет приоритет над таблицей1. Когда мы делаем запрос с ID, а если Id нет, он должен выбрать значения из Таблицы1. Если идентификатор доступен, он должен выбрать значения из таблицы 2.

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

example: 1) Select * from ViewName where ID=123
 then in this case I have to get below values (from table2, as the ID exist in the table2):   
 Id = 123   
ValueOne = C11   
ValueTwo= V12   
ValueThree= C13   

2) Select * from ViewName where ID=01
in this case it has to get the below values (Id and other values from Table1, 
as ID is not there in Table2:   
     Id = 01   
    ValueOne = C11    
    ValueTwo= C12   
    ValueThree= C13

1 Ответ

2 голосов
/ 19 марта 2019

Вам нужно будет использовать соединение.Примерно так должно работать

    CREATE VIEW View_1 AS
    select t2.*
    from Table2 t2

    Union ALL

    Select t1.*
    from table1 t1 
    LEFT JOIN Table2 t2 on t1.ID = t2.ID 
    where t2.ID is NULL

Я не тестировал, но это должно дать вам хорошее начало.

...