Я пытаюсь ПРОСМОТРЕТЬ 4 столбца из 2 разных таблиц, которые я уже создал в Oracle Live SQL - PullRequest
0 голосов
/ 16 июня 2020

Я хочу использовать команду VIEW для отображения этих 4 столбцов в одной схеме. Я попытался сделать один ВИД с первыми тремя столбцами, потому что они взяты из одной таблицы. Добавление еще одного столбца - вот где я борюсь. Я пробовал функцию ALTER, но схема VIEW, похоже, не имеет тех же прав редактирования, что и таблица. Я надеюсь, что в этом есть смысл.

create table PATIENTINFO (  
    PatientID       number not null,  
    FirstName       varchar2(50) not null,  
    LastName        varchar2(50) not null,  
    Address         varchar2(50),  
    City            varchar2(50),  
    State           varchar2(50),  
    ZipCode         number(5),  
    Phone           number(10) not null ,  
    Email           varchar2(50),  
    MemberID        number not null,  
    constraint  pk_departments primary key (PatientID)  
)
create table LABORDER ( 
    LabOrderNumber  number not null, 
    OrDate          date not null, 
    ReqBloodTest    varchar2(15) not null, 
    Reason          varchar(50), 
    PatientID       number not null, 
    constraint  pk_laborder primary key (LabOrderNumber), 
    constraint  fk_laborder_patientid foreign key (PatientID) 
            references PATIENTINFO (PatientID) 
)
CREATE VIEW PatientBlood AS 
      SELECT FirstName, LastName, PatientID 
      FROM PATIENTINFO 

1 Ответ

1 голос
/ 16 июня 2020

Напишите желаемый запрос, а затем создайте из него представление. Я начал с написания запроса ниже, а затем поставил перед ним префикс CREATE OR REPLACE VIEW. В приведенном ниже примере есть несколько случайно выбранных столбцов, измените его на те столбцы, которые вам нужны. Я решил назвать свои столбцы в определении представления, вы можете опустить это, но также сделать миллион других вещей, как указано в docs

Боковое примечание: не используйте смешанный регистр для идентификаторов например, имена столбцов / имена таблиц. Это сбивает с толку. В вашем случае это не имело значения, поскольку вы не использовали кавычки, поэтому они нечувствительны к регистру, и представление ниже будет работать, даже если все идентификаторы в нижнем регистре.

CREATE OR REPLACE VIEW laborder_v (
  labordernumber,
  patientid,
  lastname
) AS
  SELECT o.labordernumber,
         p.patientid,
         p.lastname
    FROM laborder o
    JOIN patientinfo p ON o.patientid = p.patientid;
...